CSS转换持续时间不适用于转换效果的第一个实例
CSS transition duration not applying on first instance of transition effect
我正在尝试创建一系列在按下按钮时触发的滑动div。这个想法是每个div都会有一个缩略图和一些文本。点击左/右按钮后,div会相应地移动它们的位置。
我的代码可以在下面的jsfiddle中看到。我遇到3个问题:
1( "过渡:左2秒"规则不适用于第一个过渡效果,它适用于后续的过渡效果。
2( 我希望重复按下相应的按钮,再次应用左侧的属性值,这样我就可以重复滑动div。
3( 我不想用"right"按钮将"left"属性重新定位回0,而是想将其移回与前一个left属性值相反的方向。
从本质上讲,我试图重新创建在这一侧找到的滑块。
http://www.euphoriumbakery.com/
如有任何帮助或意见,我们将不胜感激。
非常感谢你的帮助。
https://jsfiddle.net/kshatriiya/g709swLg/1/
window.onload = function() {
$("#left").on("click", function() {
$("#view").css("left", "-262px");
});
$("#right").on("click", function() {
$("#view").css("left", "0px");
});
}
#galwrapper {
width: 650px;
height: 400px;
display: block;
overflow: hidden;
}
#view {
position: relative;
width: 1423px;
transition: left 2s;
}
.col-md {
display: inline-block;
margin-top: 100px;
width: 18%;
}
.thumb img {
opacity: 0.9;
height: auto;
width: auto;
max-height: 150px;
max-width: 150px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="galwrapper">
<div id="view">
<div class="col-md">
<div class="thumb">
<img class="img-rounded" src="http://netdna.walyou.netdna-cdn.com/wp-content/uploads/2010/09/retrocake1.jpg">
<div class="caption">
<h4>Retro Cake</h4>
</div>
</div>
</div>
<div class="col-md">
<a href="#" class="thumb active">
<img class="img-rounded" src="https://i.ytimg.com/vi/dh8ii5sbvyc/maxresdefault.jpg">
<div class="caption">
<h4>Strawberry Cake</h4>
</div>
</a>
</div>
<div class="col-md" id="mid">
<a href="#" class="thumb">
<img src="https://i.ytimg.com/vi/dh8ii5sbvyc/maxresdefault.jpg">
<div class="caption">
<h4>Retro Cake</h4>
</div>
</a>
</div>
#view {
position: relative;
width: 1423px;
left:0;
transition: left 2s;
}
最初为具有id视图的div生成left:0;
https://jsfiddle.net/81tqeof4/6/
对于滑动效果,获取当前左侧位置并更新位置。查看示例的fiddle
$("#left").on("click", function(){
var leftPosition = parseInt($("#view").position().left) - 256;
$("#view").css("left", -Math.abs(leftPosition));
});
transition
仅适用于现有属性
因此,最初(在CSS中(您的#view
中没有可用的left
属性。只有稍后单击,JavaScript才会添加left
,您的转换才会开始工作。
因此,基本上,在JavaScript生效并添加左侧之前,您需要将left
属性设置为CSS中的一个值
#view {
position: relative;
width: 1423px;
left: 0; //initiate
transition: left 2s;
}
相关文章:
- 而循环只设置php中输入字段中的第一个值
- 错误:$injector:modulerr模块错误(我的第一个SPA应用程序)
- IE11中的第二个调用取消了第一个Fetch API调用
- Javascript XMLHttpRequest——只有第一个POST请求有效
- 使用javascript或angularjs特定过滤器搜索字符串中第一个img标记的json值
- 将OnClick函数设置为<ul>,最后一个ul是擦除第一个ul-s
- RxJS油门行为;立即获取第一个值
- Angular UI网格:如何通过第一个UI网格中的按钮使第二个UI网格可见
- 选择多个实例中的第一个
- 如何在调用下一个请求之前完成第一个Ajax Get请求
- Lodash:返回对象的第一个键,该对象的值(即数组)中有一个给定的元素(即字符串)
- 将一个对象转换为一个单键对象数组(带下划线?)
- 看起来第一个console.log是'It’不太对
- 与杜兰达尔合作的第一个JavaScript项目.尝试从第三方 API 获取数据
- 节点发布错误对象的第一个“属性”
- Javascript:表单验证getElementById仅返回第一个id元素
- 仅将 CSS 规则应用于
中的第一个 ,而不分配类/ID - jQuery [object object]在尝试将第一个h2标签转换为h1时出现错误
- Javascript监听器将文本从第一个text_field添加到第二个text_field后转换为slug
- JavaScript:使用第一个“行”将二维数组转换为对象数组来定义属性