js控制网站中图片漂浮

简介: 图片漂浮功能 function addEvent(obj, evtType, func, cap) { cap = cap || false; if (obj.

<html >
<head>
    <title>图片漂浮功能</title>
<script type="text/javascript">
    function addEvent(obj, evtType, func, cap) {
        cap = cap || false;
        if (obj.addEventListener) {
            obj.addEventListener(evtType, func, cap);
            return true;
        } else if (obj.attachEvent) {
            if (cap) {
                obj.setCapture();
                return true;
            } else {
                return obj.attachEvent("on" + evtType, func);
            }
        } else {
            return false;
        }
    }
    function getPageScroll() {
        var xScroll, yScroll;
        if (self.pageXOffset) {
            xScroll = self.pageXOffset;
        } else if (document.documentElement && document.documentElement.scrollLeft) {
            xScroll = document.documentElement.scrollLeft;
        } else if (document.body) {
            xScroll = document.body.scrollLeft;
        }
        if (self.pageYOffset) {
            yScroll = self.pageYOffset;
        } else if (document.documentElement && document.documentElement.scrollTop) {
            yScroll = document.documentElement.scrollTop;
        } else if (document.body) {
            yScroll = document.body.scrollTop;
        }
        arrayPageScroll = new Array(xScroll, yScroll);
        return arrayPageScroll;
    }
    function GetPageSize() {
        var xScroll, yScroll;
        if (window.innerHeight && window.scrollMaxY) {
            xScroll = document.body.scrollWidth;
            yScroll = window.innerHeight + window.scrollMaxY;
        } else if (document.body.scrollHeight > document.body.offsetHeight) {
            xScroll = document.body.scrollWidth;
            yScroll = document.body.scrollHeight;
        } else {
            xScroll = document.body.offsetWidth;
            yScroll = document.body.offsetHeight;
        }
        var windowWidth, windowHeight;
        if (self.innerHeight) {
            windowWidth = self.innerWidth;
            windowHeight = self.innerHeight;
        } else if (document.documentElement && document.documentElement.clientHeight) {
            windowWidth = document.documentElement.clientWidth;
            windowHeight = document.documentElement.clientHeight;
        } else if (document.body) {
            windowWidth = document.body.clientWidth;
            windowHeight = document.body.clientHeight;
        }
        if (yScroll < windowHeight) {
            pageHeight = windowHeight;
        } else {
            pageHeight = yScroll;
        }
        if (xScroll < windowWidth) {
            pageWidth = windowWidth;
        } else {
            pageWidth = xScroll;
        }
        arrayPageSize = new Array(pageWidth, pageHeight, windowWidth, windowHeight)
        return arrayPageSize;
    }


    var AdMoveConfig = new Object();
    AdMoveConfig.IsInitialized = false;
    AdMoveConfig.ScrollX = 0;
    AdMoveConfig.ScrollY = 0;
    AdMoveConfig.MoveWidth = 0;
    AdMoveConfig.MoveHeight = 0;
    AdMoveConfig.Resize = function () {
        var winsize = GetPageSize();
        AdMoveConfig.MoveWidth = winsize[2];
        AdMoveConfig.MoveHeight = winsize[3];
        AdMoveConfig.Scroll();
    }
    AdMoveConfig.Scroll = function () {
        var winscroll = getPageScroll();
        AdMoveConfig.ScrollX = winscroll[0];
        AdMoveConfig.ScrollY = winscroll[1];
    }
    addEvent(window, "resize", AdMoveConfig.Resize);
    addEvent(window, "scroll", AdMoveConfig.Scroll);
    function AdMove(id) {
        if (!AdMoveConfig.IsInitialized) {
            AdMoveConfig.Resize();
            AdMoveConfig.IsInitialized = true;
        }
        var obj = document.getElementById(id);
        obj.style.position = "absolute";
        var W = AdMoveConfig.MoveWidth - obj.offsetWidth;
        var H = AdMoveConfig.MoveHeight - obj.offsetHeight;
        var x = W * Math.random(), y = H * Math.random();
        var rad = (Math.random() + 1) * Math.PI / 6;
        var kx = Math.sin(rad), ky = Math.cos(rad);
        var dirx = (Math.random() < 0.5 ? 1 : -1), diry = (Math.random() < 0.5 ? 1 : -1);
        var step = 1;
        var interval;
        this.SetLocation = function (vx, vy) { x = vx; y = vy; }
        this.SetDirection = function (vx, vy) { dirx = vx; diry = vy; }
        obj.CustomMethod = function () {
            obj.style.left = (x + AdMoveConfig.ScrollX) + "px";
            obj.style.top = (y + AdMoveConfig.ScrollY) + "px";
            rad = (Math.random() + 1) * Math.PI / 6;
            W = AdMoveConfig.MoveWidth - obj.offsetWidth;
            H = AdMoveConfig.MoveHeight - obj.offsetHeight;
            x = x + step * kx * dirx;
            if (x < 0) { dirx = 1; x = 0; kx = Math.sin(rad); ky = Math.cos(rad); }
            if (x > W) { dirx = -1; x = W; kx = Math.sin(rad); ky = Math.cos(rad); }
            y = y + step * ky * diry;
            if (y < 0) { diry = 1; y = 0; kx = Math.sin(rad); ky = Math.cos(rad); }
            if (y > H) { diry = -1; y = H; kx = Math.sin(rad); ky = Math.cos(rad); }
        }
        this.Run = function () {
            var delay = 20;
            interval = setInterval(obj.CustomMethod, delay);
            obj.onmouseover = function () { clearInterval(interval); }
            obj.onmouseout = function () { interval = setInterval(obj.CustomMethod, delay); }
        }
    }
    </script>
    <div id="ad1" style="z-index: 5;border:1; border-style:dotted;">
        <!--首页漂浮:开始-->
        <a id="divclose"  onclick="setUnVisible();" style=" position:absolute;left:5px;top:5px; cursor:pointer;" title="关闭">[ 关闭 ]</a>
        <img id="adImg" src="http://www.baidu.com/img/bdlogo.gif" alt="" onload="return imgzoom(this,600);"
            style="cursor: pointer;" />
        <!--首页漂浮:结束-->
    </div>


    <script type="text/javascript"><!--
        var ad1 = new AdMove("ad1");
        ad1.Run();
        //可兼容多组漂浮
        //var ad1=new AdMove("ad2");
        //ad2.Run();
        //-->
        function setUnVisible() {
            document.getElementById("ad1").style.display = "none";
        }
    </script>
</head>
<body>
</body>
</html>


相关文章
|
前端开发 JavaScript API
使用 JavaScript 实现图片上传
使用 JavaScript 实现图片上传
616 1
|
数据采集 存储 JavaScript
基于Python 爬书旗网小说数据并可视化,通过js逆向对抗网站反爬,想爬啥就爬啥
本文介绍了如何使用Python编写网络爬虫程序爬取书旗网上的小说数据,并通过逆向工程对抗网站的反爬机制,最后对采集的数据进行可视化分析。
1421 109
基于Python 爬书旗网小说数据并可视化,通过js逆向对抗网站反爬,想爬啥就爬啥
|
移动开发 JavaScript 前端开发
【Html.js——图片折叠效果】折叠手风琴(蓝桥杯真题-1763)【合集】
本项目实现了一个图片折叠手风琴效果,使用jQuery完成。主要包括以下部分: - **介绍**:任务是通过点击图片实现折叠和展开的效果。 - **准备**:内置初始代码,包含 `css/style.css`、`images/` 文件夹、`js/` 文件夹及 `index.html` 等文件。启动 Web Server 服务可运行项目。 - **目标**:完善 `index.js` 文件,使页面达到预期的折叠效果。 - **规定**:严格按步骤操作,保持默认文件结构不变,并在完成后保持 Web 服务正常访问状态。 - **通关代码**:使用 jQuery 实现点击事件,为选中元素添加 `act
532 19
|
JavaScript 容器
带方向感知功能的js图片遮罩层插件
带方向感知功能的js图片遮罩层插件
|
人工智能 JavaScript 前端开发
一段 JavaScript 代码,集成网站AI语音助手
根据本教程,只需通过白屏化的界面操作,即可快速构建一个专属的AI智能体。
|
JavaScript 前端开发 UED
网站内容禁止复制的js代码
【10月更文挑战第2天】
|
JavaScript 前端开发
【原创】用JavaScript动态获取网页中缩放图片的长度、宽度和显示比例
【原创】用JavaScript动态获取网页中缩放图片的长度、宽度和显示比例
|
JavaScript
网站内容禁止复制的js代码
网站内容禁止复制的js代码
304 3
|
前端开发 JavaScript 搜索推荐
打造个人博客网站:从零开始的HTML、CSS与JavaScript之旅
在这个数字时代,拥有一个个性化的网络空间已成为许多人的梦想。本文将引导你了解如何从零开始,使用HTML、CSS和JavaScript创建属于自己的博客网站。我们将探索这些技术的基础概念,并通过实际代码示例展示如何将静态页面转变为动态交互式网站。无论你是编程新手还是希望扩展技能的开发者,这篇文章都将为你提供一条清晰的学习路径。【8月更文挑战第31天】
1429 1
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的在线音乐网站附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的在线音乐网站附带文章源码部署视频讲解等
259 2