如何仅在 div 上应用 javascript

Posted

技术标签:

【中文标题】如何仅在 div 上应用 javascript【英文标题】:How to apply javascript only on a div 【发布时间】:2019-01-21 12:05:06 【问题描述】:

我只想在一个 DIV 中应用一个脚本(来自 javascript)(而不是整个页面)。可能吗? (我认为如果我们修改 div 的高度,它会部分起作用,但宽度不受更改影响(我谈论的是 div),这是一个调整大小的问题) 这是我的脚本:

var camera2, scene2;
    function init2() 
        var container, stats;

        container = document.createElement( 'div' );
        document.body.appendChild( container );
        camera2 = new THREE.PerspectiveCamera( 45, window.innerWidth / window.innerHeight, 1, 2000 );
        camera2.position.z = 250;

        scene2 = new THREE.Scene();
        var ambientLight = new THREE.AmbientLight( 0xcccccc, 0.4 );
        scene2.add( ambientLight );
        var pointLight = new THREE.PointLight( 0xffffff, 0.8 );
        camera2.add( pointLight );
        scene2.add( camera2 );

        var loader = new THREE.OBJLoader();

        var mtlLoader = new THREE.MTLLoader();

        mtlLoader.load( "3d_models/OBJ/ano/ano.mtl", function( materials ) 
            materials.preload();
            console.log(materials);
            var objLoader = new THREE.OBJLoader();
            objLoader.setMaterials( materials );
            objLoader.load("3d_models/OBJ/ano/ano.obj", function ( object ) 
                console.log(object.children[0])
                scene2.add( object );
                onRenderFcts.push(function()
                            object.rotation.y += 0.03;
                )
            );
        ,
        function ( xhr ) 
            console.log( 'OBJ ' + ( xhr.loaded / xhr.total * 100 ) + '% loaded' );
        ,
        function ( error ) 
            console.log(error);
        );
        renderer = new THREE.WebGLRenderer();
        renderer.setPixelRatio( window.devicePixelRatio );
        renderer.setSize( window.innerWidth, window.innerHeight );
        container.appendChild( renderer.domElement );
    

是否可以改变背景,它实际上是一个黑色的背景,我只想要一个透明的背景。 编辑:这是屏幕截图:金色框是我的 3d 对象,绿色方块是我的 div image EDIT2:为了澄清问题,我有一个页面,页面上有一个div,只想在这个div上应用three.js函数。所以最后,我只能在 div 中看到我的金戒指

【问题讨论】:

透明背景见:***.com/questions/20495302/… 非常感谢它完美地工作;)!现在我们必须解决大问题:)! 这个链接能回答你的问题吗? ***.com/questions/17507525/… 这是一种链接,但我尝试了一些东西,但它不起作用我会继续尝试,但如果有人能在它之前找到一些东西会很酷 【参考方案1】:

我通过摸索得到了一个“正确”的结果。这是我修改的代码:

container = document.createElement( 'div' );
            var att = document.createAttribute("class");
            att.value = "test";
            container.setAttributeNode(att);
            document.body.appendChild( container );

那么这里是css中的test和canvas类:

.test
    width:100px;
    height:100px;
    position: fixed;
    top: 50%;
    left: 50%;
    margin-top: -100px;
    margin-left: -100px;


canvas
    width:500px;
    height:500px;
    margin-top: -275px;
    margin-left: -630px;

但是现在还有另一个问题。如果我尝试在更复杂的代码上调用脚本,它就不起作用!控制台没有注意到错误。这是描述情况的图片:img 所以金戒指应该在标记上(左边的标志),在黑色区域通常有金戒指正常旋转。黑区也可以通过我第一篇文章的 com 中的提示进行修复。

【讨论】:

以上是关于如何仅在 div 上应用 javascript的主要内容,如果未能解决你的问题,请参考以下文章

如何仅在内容上制作 div onClick [重复]

fullcalendar如何仅在月视图中添加div

如何仅在一个 div 中启用 onselectstart?

如何在 Android 中隐藏 DIV 上的灰色滚动条 - 它们仅在您无法滚动时显示

可折叠的 div,但仅在移动设备上

如何使用 jqueryui 仅在其右侧调整左侧 div 的大小,并且它是相邻的右侧 div,仅在其左侧?