资讯专栏INFORMATION COLUMN

js 上下拖动显示ajax数据(自适应手机版)

tunny / 1138人阅读

摘要:和这里有个刚调用系统浏览器时候的,需要一点延迟来获取模糊搜索下拉分页更多的下拉分页传输的下拉分页的父级搜索弹框搜索关闭搜索清空逻辑搜索按钮搜索逻辑搜索匹配引用下滑分页设置下拉分页下滑分页数据下滑分页回调函数立即兑换下滑分页触发原理封装及

1.common.js

var Dpr = 1, uAgent = window.navigator.userAgent;
var isIOS = uAgent.match(/iphone/i);
var isYIXIN = uAgent.match(/yixin/i);
var is2345 = uAgent.match(/Mb2345/i);
var ishaosou = uAgent.match(/mso_app/i);
var isSogou = uAgent.match(/sogoumobilebrowser/ig);
var isLiebao = uAgent.match(/liebaofast/i);
var isGnbr = uAgent.match(/GNBR/i);
function resizeRoot() {
    var wWidth = (screen.width > 0) ? (window.innerWidth >= screen.width || window.innerWidth == 0) ? screen.width : window.innerWidth : window.innerWidth, wDpr, wFsize;
    var wHeight = (screen.height > 0) ? (window.innerHeight >= screen.height || window.innerHeight == 0) ? screen.height : window.innerHeight : window.innerHeight;
    if (window.devicePixelRatio) {
        wDpr = window.devicePixelRatio;
    } else {
        wDpr = isIOS ? wWidth > 818 ? 3 : wWidth > 480 ? 2 : 1 : 1;
    }
    if (isIOS) {
        wWidth = screen.width;
        wHeight = screen.height;
    }
    // if(window.orientation==90||window.orientation==-90){
    //     wWidth = wHeight;
    // }else if((window.orientation==180||window.orientation==0)){
    // }
    if (wWidth > wHeight) {
        wWidth = wHeight;
    }
    wFsize = wWidth > 1080 ? 144 : wWidth / 7.5;
    wFsize = wFsize > 32 ? wFsize : 32;
    window.screenWidth_ = wWidth;
    if (isYIXIN || is2345 || ishaosou || isSogou || isLiebao || isGnbr) {//YIXIN 和 2345 这里有个刚调用系统浏览器时候的bug,需要一点延迟来获取
        setTimeout(function () {
            wWidth = (screen.width > 0) ? (window.innerWidth >= screen.width || window.innerWidth == 0) ? screen.width : window.innerWidth : window.innerWidth;
            wHeight = (screen.height > 0) ? (window.innerHeight >= screen.height || window.innerHeight == 0) ? screen.height : window.innerHeight : window.innerHeight;
            wFsize = wWidth > 1080 ? 144 : wWidth / 7.5;
            wFsize = wFsize > 32 ? wFsize : 32;
            // document.getElementsByTagName("html")[0].dataset.dpr = wDpr;
            document.getElementsByTagName("html")[0].style.fontSize = wFsize + "px";
        }, 500);
    } else {
        // document.getElementsByTagName("html")[0].dataset.dpr = wDpr;
        document.getElementsByTagName("html")[0].style.fontSize = wFsize + "px";
    }
    // alert("fz="+wFsize+";dpr="+window.devicePixelRatio+";UA="+uAgent+";width="+wWidth+";sw="+screen.width+";wiw="+window.innerWidth+";wsw="+window.screen.width+window.screen.availWidth);
}
resizeRoot();


var commonObj = {
    ajaxUrl: "", //模糊搜索url
    moreUrl: "", //下拉分页更多的url
    searchUrl: "",
    ajaxstatus: true,
    fenyestatus: true,
    pageData: {}, //下拉分页传输的data
    appendId: "", //下拉分页append的父级ID
    mohuSearch: function () {
        var _this = this;
        //搜索弹框
        $(".opensearchbar").on("touchend", function () {
            $("body").css({height: "100%", overflow: "hidden"});
            $(".searchdialog").show();
            $("#m_searchinput").focus();

        })
        //搜索关闭
        $(".l_backbtn").on("click", function () {
            $("body").removeAttr("style");
            $(this).parent().hide();
            //搜索清空逻辑
            $("#m_searchinput").val("").blur();

        })
        //搜索按钮
        $(".searchdialog").on("click", ".mh_searchbtn", function () {
            var keyword = $.trim($("#m_searchinput").val());
            //搜索逻辑
            window.location.href = commonObj.searchUrl + "?keyword=" + keyword;
        })
        if (document.getElementById("m_searchinput")) {
            //搜索匹配
            document.getElementById("m_searchinput").addEventListener("input", function (e) {
                var keyword = e.target.value;
                var searchResult = [];
                if ($.trim(keyword) != "") {
                    $.ajax({
                        url: _this.ajaxUrl,
                        type: "post",
                        data: {keyword: keyword},
                        dataType: "json",
                        success: function (res) {
                            var dataLength = res.data.data.length;
                            if (dataLength > 0) {
                                for (var i = 0; i < dataLength; i++) {
                                    searchResult[i] = "" +
                                            "
" + res.data.data[i].keyword + "
" + "
"; } $("#showmohulist").html(searchResult.join("")).show(); } else { $("#showmohulist").hide(); } } }) } else { $("#showmohulist").html("").show(); } }); } }, scrollNextPage: function () { var _this = this; // $(window).scroll(_this.scrollFn); $(window).on("touchmove", _this.scrollFn); }, scrollFn: function () { var clientHeight = $(window).height(); var wholeHeight = $(document).height(); var scrollTopHeight = $(window).scrollTop(); if (clientHeight + scrollTopHeight + 50 >= wholeHeight && commonObj.ajaxstatus) { if (commonObj.fenyestatus) { commonObj.ajaxstatus = false; $(".loaddiv").show(); $.ajax({ url: commonObj.moreUrl, type: "post", dataType: "json", data: commonObj.pageData, success: function (res) { commonObj.searchCallBack(res); } }) } else { return } } }, searchCallBack: function (obj) { } }

2.引用js

 //下滑分页
        var listObj = {
            pagenumber: 2,
            sDfsview: "",
            initList: function () {
                commonObj.moreUrl = "/web/interchange/index";//设置下拉分页url
                commonObj.appendId = "goods_list";
                //下滑分页数据
                commonObj.pageData = {
                    page: listObj.pagenumber,
                    t: true
                };
                //下滑分页回调函数
                commonObj.searchCallBack = function (res) {
                    console.log(res.data);
                    console.log("hello");
                    $(".loaddiv").hide();
                    var dataLength = res.data.length;
                    console.log(dataLength);
                    if (dataLength > 0) {
                        listObj.pagenumber++;
                        commonObj.ajaxstatus = true;
                        commonObj.pageData.page = listObj.pagenumber;
                        var htmlArray = [];
                        for (var i = 0; i < dataLength; i++) {
                            htmlArray[i] = "
" +"" +"
" +"

"+res.data[i].sGoodsName+"

" +"

"+res.data[i].sGoodDsc+"

" +"
" +"
" +""+res.data[i].sStock+"" +"
" +"
立即兑换
" +"
" +"
" +"
"; } $("#" + commonObj.appendId).append(htmlArray.join("")); } else { commonObj.fenyestatus = false } }; //下滑分页触发 commonObj.scrollNextPage(); } }; $(listObj.initList)

3.原理

js  ajax封装 及时调,及时渲染

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/85006.html

相关文章

  • 前端面试之htm5新特性

    摘要:今天来谈谈前端面试中基本上每次一面的时候都会被问到的一个问题,那就是的新特性。新表单元素元素,表示电话号码。和通过设置和特性,可以将输入框的数值输入范围限定在最低值和最高值之间。一旦为某输入型控件设置了特性,那么此项必填,否则无法提交表单。 今天来谈谈前端面试中基本上每次一面的时候都会被问到的一个问题,那就是html5的新特性。这个是学习前端必须掌握的基础知识。 新增的元素 html5...

    teren 评论0 收藏0
  • htm5新特性(转)

    摘要:转自今天来谈谈前端面试中基本上每次一面都会被问到的一个问题,那就是的新特性了。元素,表示生成密匙。和通过设置和特性,可以将输入框的数值输入范围限定在最低值和最高值之间。一旦为某输入型控件设置了特性,那么此项必填,否则无法提交表单。 转自:http://hyuhan.com/2017/07/06/... 今天来谈谈前端面试中基本上每次一面都会被问到的一个问题,那就是html5的新特性了。...

    focusj 评论0 收藏0
  • 2019前端最全面试题

    摘要:把标签恰好放在之前脚本在下载和执行期间会阻止解析。表示引用资源,替换当前元素,用在,,上,是页面内容不可缺少的一部分。声明是用来指示浏览器关于页面使用哪个版本进行编写的指令。声明必须是文档的第一行,位于标签之前。 项目地址 HTML问题 HTML5语义化 什么是语义化?就是用合理、正确的标签来展示内容,比如h1~h6定义标题。 好处 易于用户阅读,样式丢失的时候能让页面呈现清晰的结构...

    周国辉 评论0 收藏0
  • 2019前端最全面试题

    摘要:把标签恰好放在之前脚本在下载和执行期间会阻止解析。表示引用资源,替换当前元素,用在,,上,是页面内容不可缺少的一部分。声明是用来指示浏览器关于页面使用哪个版本进行编写的指令。声明必须是文档的第一行,位于标签之前。 项目地址 HTML问题 HTML5语义化 什么是语义化?就是用合理、正确的标签来展示内容,比如h1~h6定义标题。 好处 易于用户阅读,样式丢失的时候能让页面呈现清晰的结构...

    ShevaKuilin 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<