数据属性有没有更干净的方法
Is there a cleaner way with data-attribute
想知道他们是否是构建此代码的更干净的方式??我希望对后退和前进按钮的左值和右值使用数据属性。
谢谢!!!
.hover-area { position:relative; width:100%; height:50px; }
.backward, .forward { position:absolute; }
.backward{ left:0px; }
.forward { right:0px; }
<div class="hover-area">
Hover Area
<div class="backward" data-animate-on='{"left":"20"}' data-animate-off='{"left":"0"}'>
Previous
</div>
<div class="forward" data-animate-on='{"right":"20"}' data-animate-off='{"right":"0"}'>
Next
</div>
</div>
$('.forward').css({
opacity: 0,
right: 0
});
$('.hover-area').hover(function () {
$(this).find('.forward').stop().animate({
right: 20
}, {
queue: false,
duration: 300,
easing: 'easeOutCubic'
}).animate({
opacity: '0.95'
}, {
queue: false,
duration: 400,
easing: 'easeOutCubic'
});
}, function () {
$(this).find('.forward').stop().animate({
right: 0
}, {
queue: false,
duration: 550,
easing: 'easeOutSine'
}).animate({
opacity: '0'
}, {
queue: false,
duration: 300,
easing: 'easeOutSine'
});
});
$('.backward').css({
opacity: 0,
left: 0
});
$('.hover-area').hover(function () {
$(this).find('.backward').stop().animate({
left: 20
}, {
queue: false,
duration: 300,
easing: 'easeOutCubic'
}).animate({
opacity: '0.95'
}, {
queue: false,
duration: 400,
easing: 'easeOutCubic'
});
}, function () {
$(this).find('.backward').stop().animate({
left: 0
}, {
queue: false,
duration: 550,
easing: 'easeOutSine'
}).animate({
opacity: '0'
}, {
queue: false,
duration: 300,
easing: 'easeOutSine'
});
});
- 您可以组合您的功能并一起运行它们
- 然后,您可以将类似的动画配置存储在变量中,然后使用它们
- 若要获取动画信息,只需使用
$(el).data('animate-on')
,它就会返回对象 - 您也可以使用
jQuery.each
,因为您对按钮所做的操作非常相似
.演示:http://jsfiddle.net/vYvVb/1/
$('.forward').css({ opacity: 0, right: 0 });
$('.backward').css({ opacity: 0, left: 0 });
$('.hover-area').hover(function () {
var conf_1 = { queue: false, duration: 300, easing: 'easeOutCubic' };
var conf_2 = { queue: false, duration: 400, easing: 'easeOutCubic' };
$(this).find('.backward, .forward').each(function () {
$(this).stop()
.animate($(this).data('animate-on'), conf_1)
.animate({ opacity: 0.95 }, conf_2);
});
}, function() {
var conf_1 = { queue: false, duration: 550, easing: 'easeOutSine' };
var conf_2 = { queue: false, duration: 300, easing: 'easeOutSine' };
$(this).find('.backward, .forward').each(function () {
$(this).stop()
.animate($(this).data('animate-off'), conf_1)
.animate({ opacity: 0 }, conf_2);
});
});
相关文章:
- 有没有任何方法可以将控制器从文件加载到ui路由器$stateProvider中
- 有没有一种方法可以添加相同的项目val=“0”;4〃;到JavaScript中数组的每个对象
- 有没有一种方法可以防止img get请求使用css或js发生
- Javascript,有没有一种方法可以将数组写成没有逗号或空格的单个文本字符串
- 有没有更好的动手、具体的方法来学习Javascript
- 有没有一种方法可以在控制台关闭的情况下让console.log()在IE中记录消息
- 在D3.js中,有没有任何方法可以将x和y方向上的滚动事件绑定到平移svg
- 有没有任何方法可以使用node-js从不同的机器打开浏览器
- 有没有一种方法可以仅使用HTML/CSS来隐藏基于特定值的数据单元格
- 有没有一种方法可以从URL跟踪请求的域
- 有没有比在app.js上绑定模块名称更好的方法来动态加载视图模型和视图以显示模态
- 有没有一种方法可以列出Ember.Object的所有绑定
- 有没有一种方法可以获得three.js的最小/lite版本
- 有没有一种方法可以在没有文档或jQuery的情况下使用javascript解码html实体
- 有没有一种方法可以从Javascript检测特定的应用程序是否安装在(AndroidiOS)设备上
- 在HTML/JavaScript中,有没有一种方法可以在图像开始加载时知道图像的最终布局尺寸
- 有没有一种方法可以在Javascript中进行可变递归currying
- 有没有一种方法可以检测ios<>使用jquery和触发器操作形成导航按钮
- 有没有一种方法可以让内联事件处理程序在元素创建后立即执行
- 有没有一种方法可以直接从cordova获得滚动位置