图像滑块:处理宽度
Image Slider: Working with the widths
<body>
<div id="parent_scroll">
<div id="slider">
<div class="slides">Slide1</div>
<div class="slides">Slide2</div>
<div class="slides">Slide3</div>
</div>
</div>
</body>
<style>
#parent_scroll{
width: 800px;
height: 350px;
border: 1px solid grey;
margin-left: auto;
margin-right: auto;
overflow: hidden;
position: relative;
}
#slider{
width: 2430px;
border: 1px solid green;
height: 350px;
position: absolute;
}
.slides{
width: 800px;
height: 350px;
border: 1px dotted blue;
float: left;
background-color: grey;
font-size: 30px;
text-align: center;
}
我正在尝试实现一个幻灯片放映的功能。但我不确定什么逻辑进入javascript在这里,我知道我需要使用setInterval()函数。唯一的部分是我将如何计算出元素的宽度与id:"slider"。指针会很有用编辑:尝试实现这没有jQuery
我在你的CSS中看到你的宽度是静态的,但如果你要添加幻灯片,你应该使用。slides的宽度乘以幻灯片的数量来计算#slider的宽度…
然后,保存你的。slides宽度(包括边距)作为你的偏移量,并动画#slider的左侧位置使用偏移量…
EDIT:实际上,我一直在摆弄另一种技术,这样你就不必计算宽度了,那就是像这样使用display inline-block:
#slider { white-space:nowrap;}
.slides { display:inline-block;}
这将自动使所有的幻灯片在同一行,然后你可以使用动画空白。
让我知道你是否明白了…您需要代码示例吗?
EDIT:示例(使用css动画)
Javascriptvar slider, slides, offset, amount, _timer, _curindex = 0;
function initSlider() {
slider = document.getElementById("slider");
slides = document.getElementsByClassName("slides");
offset = slides[0].offsetWidth+2;
amount = slides.length;
slider.style.width = offset*amount;
_timer = setInterval(moveSlide, 3000);
}
function moveSlide() {
_curindex = (_curindex == amount-1) ? 0 : _curindex+1;
slider.style.left = -_curindex*offset+"px";
}
initSlider();
小提琴
像这样?纯HTML CSS:
<div id="parent_scroll">
<div id="slider">
<div class="slides"><img src="http://placehold.it/350x150/ff0000/000000" alt=""></div>
<div class="slides"><img src="http://placehold.it/350x150/00ff00/000000" alt=""></div>
<div class="slides"><img src="http://placehold.it/350x150/0000ff/000000" alt=""></div>
</div>
</div>
DIV#parent_scroll{
width: 350px;
height: 150px;
overflow: hidden;
}
DIV#slider{
position: relative;
width: 1050px;
animation: slideme 5s infinite;
-webkit-animation: slideme 5s infinite;
}
@keyframes slideme {
0% {left: 0;}
33% {left: -350px;}
67% {left: -700px;}
100% {left: 0;}
}
@-webkit-keyframes slideme {
0% {left: 0;}
33% {left: -350px;}
67% {left: -700px;}
100% {left: 0;}
}
DIV.slides{
float: left;
}
DIV#slider:before, DIV#slider:after{
display: table;
content: "";
}
DIV#slider:after{
clear: both;
}
DIV#slider{
zoom: 1
}
http://jsfiddle.net/yLTKe/3/添加JS使其动态
你应该试试下面的代码
<div id="div1" class="slides" style="width:800px...">Slide1</div>`
和js代码中的
var slide1 = document.getElementById("div1");
//if you want to add width
slide1.style.width= parseInt(slide1.style.width) + 100 + "px";`
相关文章:
- 通过传递图像的URL通过javascript读取/处理图像-类似于PHP中的file_get_contents
- 链接无法处理图像
- siblings.removeclass没有'我不处理图像
- OKZoom 插件无法使用 svg 过滤器处理图像
- 在主干视图中处理图像错误事件
- 将 asp:imagebutton 替换为使用 jquery 处理图像
- 如何在不上传的情况下在本地处理图像(来自手机)
- JQuery- 如何使用 ALS 滚动脚本处理图像
- 如何通过API处理图像上的复古/复古过滤器
- 处理图像中的Web导出
- 在Coffeescript中AJAX加载后处理图像大小
- Firefox和IE处理图像对象的方式与Webkit有什么不同?
- 使用jQuery处理图像亮度
- 在使用javascript库处理图像大小时获取上下文的问题
- 如果使用grunt-contrib-imagemin对图像进行了优化,如何在车把模板中处理图像
- Slider javascript库,以不同的速度处理图像和文本层
- 处理图像加载的Javascript-event.target.result为空
- onclick事件无法处理图像
- 处理图像预加载的最佳方法
- 谷歌文档附加组件-处理图像