Jquery实现相对浏览器位置固定、悬浮

<script src="Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function () {
var stayBottom = function () {
///相对于浏览器的位置(浏览器的高度+滚动到上面看不到的高度-本身的高度=层顶部到浏览器最上面的高度)
var offsetTop = $(window).height() + $(window).scrollTop() - $("#bottomdiv").height() - 2 + "px";
//$("#bottomdiv").css("top", offsetTop);
$("#bottomdiv").animate({ top: offsetTop, "left": $(window).width() / 2 - $("#bottomdiv").width() / 2 }, { duration: 500, queue: false });
};
$(window).scroll(stayBottom).resize(stayBottom);//在浏览器滚动条变化或大小改变时调用
});
< /script>
< div id="bottomdiv" style="position: absolute; border-style: solid; border-width: thin;
border-color: Gray; height: 50px; bottom: 0;">
固定内容,实现层底部始终与浏览器底部相接,如果位置要往上移,offsetTop里面减去多少就是往上移多少,left里面加多少就是往右移多少
</div>
 

效果:

附:动态加载数据1(向上往下加载)。

//html

<div id="div_content3" class="Content3">
    <input type="hidden" id="RefreshTime" value="0" /><!--刷新次数-->
    <input type="hidden" id="CurIndex" value="0" /><!--当前页码-->
    <input type="hidden" id="State" value="0" /><!---->
    <input type="hidden" id="ClassID" value="@(ViewBag.ClassID)" />
    <input type="hidden" id="ClassID2" value="@(ViewBag.ClassID2)" />
</div>

//js

        var DynamicData = function () {
            //窗口的高度+看不见的顶部的高度=最低部距离最顶部的高度
            var thisButtomTop = parseInt($(window).height()) + parseInt($(window).scrollTop());
            //内容div顶部距顶部的高度+内容div本身的高度=内容div底部距离最顶部的高度
            var divcontentButtomTop = parseInt($("#div_content3").offset().top) + parseInt($("#div_content3").height());
            if (thisButtomTop > divcontentButtomTop) { div_more_click(); }
        };
        $(window).scroll(DynamicData).resize(stayBottom);

    function div_more_click() {
        var state = $("#State").val();
        if (state == "" || state == "1") return false; //正在加载或数据库已无数据,不能再次查询
        $("#State").val(""); //赋值为空
        var CurIndex = parseInt($("#CurIndex").val());
        var ClassID = $("#ClassID").val();
        var ClassID2 = $("#ClassID2").val();
        $.ajax({//ajax_begin
            type: "post",
            url: "/GetMore?d=" + new Date().getMilliseconds(),
            data: { "pageindex": CurIndex + 1, "ClassID": ClassID, "ClassID2": ClassID2 },
            dataType: "text",
            error: function (jqXHR, textStatus, errorThrown) { alert('loading failed' + textStatus + errorThrown); },
            success: function (data) {
                if (data != "") {
                    $("#CurIndex").val(CurIndex + 1);
                    $("#State").val("0");
                    $("#div_content3").append(data);
                }
                else {
                    $("#div_more").hide();
                    $("#State").val("1");
                    $("#div_content3").append(data);
                }
            }
        })//ajax_end
        return false;
    }

思路图:

附:动态加载数据2(处理屏幕可见区域时加载)。

        var DynamicPic = function () {//动态加载
            //窗口的高度+看不见的顶部的高度=屏幕低部距离最顶部的高度
            var thisButtomTop = parseInt($(window).height()) + parseInt($(window).scrollTop());
            var thisTop = parseInt($(window).scrollTop()); //屏幕顶部距离最顶部的高度
            ////内容div顶部距顶部的高度+内容div本身的高度=内容div底部距离最顶部的高度
            //var divcontentButtomTop = parseInt($("#div_content3").offset().top) + parseInt($("#div_content3").height());
            //if (thisButtomTop > divcontentButtomTop) { div_more_click(); }
            $.each($("#LeftProject2 img,#LeftProject3 img,#RightContent img"), function (i, obj) {
                var thisImg = $(this);
                var PictureTop = parseInt(thisImg.offset().top);
                //如果处理可见范围内,并且原图地址data-original不等于src,则加载图片
                if (PictureTop >= thisTop && PictureTop <= thisButtomTop && thisImg.attr("data-original") != thisImg.attr("src")) {
                    thisImg.attr("src", thisImg.attr("data-original"));
                }
            });
        };
        $(window).scroll(DynamicPic).resize(DynamicPic);

//htm把真实路径放在data-original属性中,加载页面时不会加载图片,放一个默认的小图片grey.gif。

<img src="/Content/images/Imgpreview/grey.gif" data-original="/Content/images/convention/Conr_pic12.jpg"
                    width="316" height="180" />

<img src="/Content/images/Imgpreview/grey.gif" data-original="/Content/images/convention/Conr_pic11.jpg"
                    width="316" height="180" />

时间: 2025-01-20 11:51:23

Jquery实现相对浏览器位置固定、悬浮的相关文章

jQuery+CSS3实现仿花瓣网固定顶部位置带悬浮效果的导航菜单_jquery

本文实例讲述了jQuery+CSS3实现仿花瓣网固定顶部位置带悬浮效果的导航菜单.分享给大家供大家参考,具体如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml

jQuery页面侧边固定悬浮导航代码(带关闭按钮)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-

js 固定悬浮效果实现思路代码

悬浮效果想必大家都不陌生吧,本文为大家介绍下使用js固定悬浮的实现思路及代码,感兴趣的朋友可以参考下   复制代码 代码如下: <script type="text/javascript"> (function($){ var ele_fix = $("#div_right"); //浮动窗口 var _main = $(".main"); //浮动区域 var ele_offset_top = ele_fix.offset().to

jquery 时间控件-关于jquery时间控件位置放在第一个的问题?

问题描述 关于jquery时间控件位置放在第一个的问题? 日期的输入框放在的div里面的第一个,当页面用dialog弹出这个div时,输入框自动获取到焦点,然后就控件就自己跳出来了.如何处理让弹出这个div时,时间控件没有自己弹出来? 解决方案 时间控件的问题 解决方案二: .bind('focus', function(e) {e.preventDefault();}); 试试这个看看 屏蔽默认的获取焦点事件. 解决方案三: 浏览器不会自动给控件设置焦点的,你肯定是用js设置了焦点,将代码去掉

javascript使用百度地图api和html5特性获取浏览器位置

 本文介绍了javascript使用百度地图api和html5特性获取浏览器位置的小功能,大家参考使用吧 代码如下: <!DOCTYPE html> <html> <body> <p id="demo">点击这个按钮,获得您的位置:</p> <button onclick="getLocation()">试一下</button> <script src="http:/

jquery实现在光标位置插入内容的方法_jquery

本文实例讲述了jquery实现在光标位置插入内容的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: <!DOCTYPE html>  <html>  <head>      <title>无标题页</title>      <script type="text/javascript" src="jquery-1.7.2.min.js"></script>     

ASP.NET MVC中使用jQuery时的浏览器缓存问题详解_实用技巧

介绍 尽管jQuery在浏览器ajax调用的时候对缓存提供了很好的支持,还是有必要了解一下如何高效地使用http协议. 首先要做的事情是在服务器端支持HTTP GET,定义不同的URL输出不同的数据(MVC里对应的就是action).如果要使用同一个地址获取不同的数据,那就不对了,一个HTTP POST也不行因为POST不能被缓存.许多开发人员使用POST主要有2个原因:明确了数据不能被缓存,或者是避免JSON攻击(JSON返回数组的时候可以被入侵). 缓存解释 jQuery全局对象里的ajax

jQuery模拟360浏览器切屏效果幻灯片(附demo源码下载)_jquery

本文实例讲述了jQuery模拟360浏览器切屏效果幻灯片,分享给大家供大家参考,具体如下: 运行效果截图如下: 点击此处查看在线演示效果. 具体代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://w

使用jQuery判断IE浏览器版本的代码_jquery

IE还真是让设计师恨的牙痒痒的东西,且现在已经有IE6.IE7.IE8.IE9.IE10这个五种不同版本的浏览器,且都有一点小差异.但是没办法,为了让网页在每个浏览器中显示都一样还必须迁就它. 不过现在我基本上都不太愿意对低版本的IE去做兼容了.比如IE6.IE7这些直接忽略!IE8的话还凑合一下.好在IE9和IE10对网络标准支持都比较了,等IE9版本以上的浏览器普及以后就好很好了. 但是不做兼容归不做兼容,还是要简单的处理一下的.幸运的是 jQuery 提供了 browser 标记来让我们能