首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在snap.js中添加固定的div?

如何在snap.js中添加固定的div?
EN

Stack Overflow用户
提问于 2013-09-09 15:07:22
回答 2查看 1.8K关注 0票数 2

我正尝试在snap.js (https://github.com/jakiestfu/Snap.js/)的内容包装器中添加一个固定的div。我尝试过的所有操作都失败了,因为snap.js使用所有固定元素来推送整个画布。有什么办法可以解决这个问题吗?

我在这里模拟了我想要达到的效果

更新:经过对这个问题的进一步调查,我得出结论,这个固定的div需要一个事件侦听器,它将触发一个相反的转换:translate3d 3d。该脚本的工作方式是将transform:translate3d设置为与左侧抽屉相同的宽度。下面是代码片段:

代码语言:javascript
复制
x: function(n) {
                if( (settings.disable=='left' && n>0) ||
                    (settings.disable=='right' && n<0)
                ){ return; }

                n = parseInt(n, 10);
                if(isNaN(n)){
                    n = 0;
                }

                if( utils.canTransform() ){
                    var theTranslate = 'translate3d(' + n + 'px, 0,0)';
                    settings.element.style[cache.vendor+'Transform'] = theTranslate;
                } else {
                    settings.element.style.width = (win.innerWidth || doc.documentElement.clientWidth)+'px';

                    settings.element.style.left = n+'px';
                    settings.element.style.right = '';
                }

有人知道如何编写一个事件侦听器,将固定div的transform3d设置为与内容容器相同的量吗?

EN

回答 2

Stack Overflow用户

发布于 2013-09-09 17:28:08

你有没有尝试过绝对元素而不是固定元素?

如果保留固定元素,则必须在此元素上添加动画才能与菜单同时移动。

固定元素基于页面的相同源代码(左上角),如果您将其放入其他元素中,也是如此。

绝对是基于第一个元素是相对的。

票数 0
EN

Stack Overflow用户

发布于 2013-10-13 00:45:29

我终于找到时间帮你了。是的,你必须颠倒容器的过渡,它保存着你的图像。

你不得不稍微改进一下雅各布的剧本。

首先定义一个容器,在您的"snap-content“容器中包含一个图像。

代码语言:javascript
复制
<div id="invertTransDiv">
    <div class="infotext">This DIV (with the red border and it's background image) translates inverted</div>
</div>

然后你需要添加一些样式:

代码语言:javascript
复制
#invertTransDiv{
    background: none repeat scroll 0 0 #5E87B0;
    background-image: url("http://jakiestfu.github.io/Snap.js/demo/assets/drag.png");
    background-repeat: no-repeat;
    border: solid red 2px;
    height: 150px;
    left: 50px;
    position: fixed;
    top: 400px;
    width: 200px;
    z-index: 3;
}

.infotext{
    width: 200px;
    margin-top: 50px;
}

然后加强雅各布的剧本。

这里没有太多的细节-去他的提琴Fiddle这里的关键点是在初始化时简单地添加你的倒置Fiddle

代码语言:javascript
复制
var snapper = new Snap({
element: document.getElementById('content'),
invertedDiv: document.getElementById('invertTransDiv')

});

然后你必须“简单地;-)”用负因子(-1)来反转转换--但你会看到小提琴。看看JS-sections中的注释,比如(大约有5到6个) /*-------------TESTINVERT*/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18693068

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档