【问题标题】:Implementing html from javascript从 javascript 实现 html
【发布时间】:2018-11-02 06:33:17
【问题描述】:

我正在观看velocity.js 的教程/演示,该教程/演示用于在网站上模拟动态3d 视图: https://www.youtube.com/watch?v=MDLiVB6g2NY&hd=1

这与我被赋予的任务非常相似,我在逻辑上理解它,但我不明白在 html 中实现以下代码需要做什么。我知道我需要一个 id="count" 的元素来接收 DOM 点元素,但我不确定应该是哪种元素或它需要哪些其他参数或附加代码。我的 CSS 中有一个 .dot 类,我可以使用velocity.js 对其进行操作,只需将它们实例化,就像他在视频中展示的那样。

var isWebkit =  /Webkit/i.test(navigator.userAgent),
    isChrome =  /Chrome/i.test(navigator.userAgent),
    isMobile =  !!("ontouchstart" in window),
    isAndroid = /Android/i.test(navigator.userAgent);

$.fn.velocity.defaults.easing = "easeInOutSine";

function r(min,max){
    return Math.floor(Math.random() * (max-min +1)) +min;
}

var dotsCount = isMobile ? (isAndroid ? 40 : 70) : (isChrome ? 200 : 125),
    dotsHtml = "",
    $count = $("#count"),
    $dots;

//instantite DOM elements
for(var i = 0; i < dotsCount; i++){
    dotsHtml += "<div class = 'dot'></div>";
}
$dots = $(dotsHtml);
$count.html(dotsHtml);

我们将不胜感激任何帮助和建议。

【问题讨论】:

标签: javascript html velocity.js


【解决方案1】:

根据视频中的说明,您的 html 应该是这样的。

<div class="container">
  <div class="description"></div>
     <div id="count">

      </div>
</div>

点会自动生成到 $('#count') 中。视频中的其余代码通过改变 z 轴的视角来控制点/容器动画。

【讨论】:

    【解决方案2】:

    这将修复您的代码:

    isMobile 未初始化

     var dotsCount = 15;//isMobile ? (isAndroid ? 40 : 70) : (isChrome ? 200 : 125),
        var $dots = 0;
            dotsHtml = "",
            $count = $("#count"),
            $dots = 0;
    
        //instantite DOM elements
        for (var i = 0; i < dotsCount; i++) {
             dotsHtml += "<div class = 'dot'></div>";
        }
        $dots = $(dotsHtml);
        $count.html(dotsHtml);
    
        function r(min, max) {
            return Math.floor(Math.random() * (max - min + 1)) + min;
        }
    

    http://jsfiddle.net/gpncxmf0/

    【讨论】:

    • 对不起,我应该说得更清楚一点,它已包含在内,我只是对最相关的部分进行了 sn-p... 我会修改问题。
    • @AlecGamble 还请查看小提琴并打开您的控制台并查看 html。代码有效!
    • 但是接下来我需要做什么来制作像示例这样的视觉表示?就像我有少量的 CSS 指示“点”应该是什么样子,但我不知道 $count 引用的容器应该是什么样子才能实现这一点。我的意思是我的猜测只是一个具有 100% 宽度和高度以及背景颜色的 div,但我无法用它来实例化“点”元素......如果我手动将它们放入它就可以工作,但那不会看起来不对。
    • 顺便说一句,我不是想尴尬,我只是不明白:(
    • 如视频中所述,您必须链接 velocity.js 才能使此代码正常工作。 .dots 也只是具有 50% 边框半径和阴影的样式。
    猜你喜欢
    • 2023-04-05
    • 2023-03-10
    • 2011-05-12
    • 1970-01-01
    • 1970-01-01
    • 2023-04-06
    • 1970-01-01
    • 2019-01-07
    • 1970-01-01
    相关资源
    最近更新 更多