我正在创建一个页脚广告格式以在 Google DFP 中运行,但 jQuery 无法在其中运行(长话短说)。因此,我试图找到一些替代方法来完成相同的任务——即 slideUp、slideDown 和 animate 函数。有谁知道一些替代品?谢谢!
6 回答
dom-slider是 jQuery 的 slideDown、slideUp 和 slideToggle 方法的 vanilla-js 实现,适用于高度未知的元素。像 jQuery 一样使用它:
element.slideUp()
element.slideDown(800)
element.slideToggle(800, 'easeOut') // CSS transition timing function
element.slideUp(300).slideDown(500)
但是,它的方法不接受回调——相反,您提供带有返回承诺的回调:
element.slideUp().then(function() {
console.log('sliding done!');
})
There are a few other improvements as well. Check out the README for the details.
检查适用于 javascript 的此链接:
http://www.switchonthecode.com/tutorials/javascript-sliding-panels-using-generic-animation
例子:
HTML:
<div style="position:relative;
width:150px;
height:170px;
top:0px;
left:0px;">
<div id="exampleHeader1"
style="position:absolute;
width:150px;
height:20px;
top:0px;
left:0px;
background:#3b587a;
text-align:center;
color:#FFFFFF;"
onclick="slideExample1('examplePanel1', this);">
^^^
</div>
<div id="examplePanel1"
style="position:absolute;
width:150px;
height:130px;
top:20px;
left:0px;
background:#a6bbcd;
overflow:hidden;">
Content
</div>
</div>
Javascript:
function slideExample1(elementId, headerElement)
{
var element = document.getElementById(elementId);
if(element.up == null || element.down)
{
animate(elementId, 0, 20, 150, 0, 250, null);
element.up = true;
element.down = false;
headerElement.innerHTML = 'vvv';
}
else
{
animate(elementId, 0, 20, 150, 130, 250, null);
element.down = true;
element.up = false;
headerElement.innerHTML = '^^^';
}
}
为什么不使用 Css 动画?
我知道,它会在旧浏览器(< IE10)中直接跳到最后,
但总比没有好,而且非常轻量级。
你到底想达到什么目的?我也许可以帮助您解决 slideUP 和 downs/ 或者,您可以使用 jquery.animate() 重新定位和更改高度等,但 slideUp 和 slideDown 确实工作得很好!
只需将整个 jQuery 源文件粘贴到您可以编辑的脚本中。之后我可能会添加 100 或 200 个换行符,以从我的代码中添加一些视觉分离。