是否可以将一个元素还原为它's上一个位置,而不将该位置作为参数传递
Is it possible to restore an element to it's previous position without passing the position as a parameter?
以下函数采用options
参数,并根据startValue
:将元素动画化为特定的amount
像素
options: {
property: 'right',
startValue: '-250px',
amount: '250px'
},
function (options) {
const $el = $(this.el)
$el.click(() => {
const startValue = $el.parent().css(slide.property)
const calcValue = parseInt(startValue, 10) + parseInt(slide.amount, 10)
if (startValue === slide.startValue) {
$el.parent().animate({ [slide.property]: calcValue }, 200)
} else {
$el.parent().animate({ [slide.property]: slide.startValue }, 200)
}
})
}
但我想知道,在不必为函数提供startValue
的情况下,是否可以实现同样的功能?(例如,如果right
的初始值是0
,则在第二次单击元素时将其恢复为0
。)
您可以利用.animate()
在调用时添加内联样式属性这一事实。因此,如果您想将元素恢复为CSS中指定的right
值,可以调用.removeAttr("style")
。要获得动画效果,您必须在CSS中包含一个transition属性。
例如,看看这个工作小提琴:https://jsfiddle.net/hr0cxax2/1/
$("#slideButton").on("click", function() {
$("div").animate({right:"-=50px"}, 200);
});
$("#restoreButton").on("click", function() {
$("div").removeAttr("style");
});
div {
height: 50px;
width: 50px;
top: 20px;
right: 300px;
background-color: red;
position: fixed;
-webkit-transition: right 0.2s;
-moz-transition: right 0.2s;
transition: right 0.2s;
}
否则,据我所知,在调用.animate()
之前,您需要获取并保存原始的right
值。
相关文章:
- 单击按钮后如何逐个调用分区,上一个分区将隐藏
- 如何将值传递到上一个html页面
- Javascript获取上一个元素的内容
- 禁用旋转木马中的下一个按钮和上一个按钮
- 引用vue.js中v-for中的上一个值
- DOM导航-上一个同级未定义
- 构建JS测试,警报窗口重复上一个Q,而不是问下一个Q
- 是否可以将一个元素还原为它's上一个位置,而不将该位置作为参数传递
- jquery scrolltop()返回上一个滚动位置的值
- 阻止浏览器在按下后退按钮时捕捉到上一个滚动位置
- 浏览器的“上一个”按钮位置更改
- 离开悬停后如何将P标签保持在上一个位置
- 如何创建一个上下文菜单,该菜单仅在单击容器时显示在光标位置上
- 返回上一个滚动位置 - jquery移动页面设计
- 确定拉斐尔路径上一个点的位置
- 如何使用 jquery 获取下一个/上一个链接,无论它在 DOM 中的位置如何
- 有没有办法抓住我的位置在一个网站上,并在我的位置上打开另一个网站
- 如何使用OSM在我当前的位置上放置一个标记
- 当前滚动位置和上一个滚动位置的Javascript变量
- 当我隐藏上一个面板时,下一个面板会向左移动到前一个面板的位置,我希望它保持原样