精华内容
下载资源
问答
  • canvas在不同浏览器中高度限制问题

    千次阅读 2016-11-23 15:09:41
    最近遇上项目上有一个绘制大尺寸表格的问题,产品中封装的表格控件在支持HTML5的浏览器上采用画布展示,但是绘制的行数过多后发现展示不全的问题,经过查阅资料和写demo测试,发现主流浏览器对canvas的尺寸做了一定...

    最近遇上项目上有一个绘制大尺寸表格的问题,产品中封装的表格控件在支持HTML5的浏览器上采用画布展示,但是绘制的行数过多后发现展示不全的问题,经过查阅资料和写demo测试,发现主流浏览器对canvas的尺寸做了一定的限制。

    测试代码如下:

    <!DOCTYPE html>
    <html>
      <head>
        <meta charset='utf-8'>
      </head>
      <body>
        <canvas id="a_canvas" width="300" height="8192"></canvas>
    
        <script type="text/javascript">
          (function (){
    
            window.addEventListener("load", function(){
    
    
              var a_canvas = document.getElementById('a_canvas');
              var context = a_canvas.getContext("2d");
    
    
              var gradient = context.createLinearGradient(0,0,0,300);
    
              gradient.addColorStop(0,"#e0e0e0");
              gradient.addColorStop(1,"#ffffff");
    
    
              context.fillStyle = gradient;
    
              context.fillRect(0,0,a_canvas.width,a_canvas.height);
    
              var grid_cols = 10;
              var grid_rows = 400;
              var cell_height = a_canvas.height / grid_rows;
              var cell_width = a_canvas.width / grid_cols;
              context.lineWidth = 1;
              context.strokeStyle = "#a0a0a0";
    
    
              context.beginPath();
    
              for (var col = 0; col <= grid_cols; col++) {
                var x = col * cell_width;
                context.moveTo(x,0);
                context.lineTo(x,a_canvas.height);
              }
    
              for(var row = 0; row <= grid_rows; row++){
                var y = row * cell_height;
                context.moveTo(0,y);
                context.lineTo(a_canvas.width, y);
              }
              context.stroke();
            },false);
          })();
        </script>
      </body>
    经过测试发现IE9将画布的高度限制在8192px,既2的13次幂,但是这个限制貌似会受到电脑硬件的影响,如果电脑配置足够高,IE的高度限制也会增高,超过规定的高度限制,超过的部分在IE9上无法渲染。

    chrome55.0.2868.3和firefox49.0.2都将canvas的高度限制在32767px,2的15次幂减1,超过高度限制,整个画布在浏览器上无法渲染。

    测试结果只针对我本地的环境,如果有错误的地方,欢迎指正。


    展开全文
  • 之前写过一个系统是在自己的电脑上调的,页面展示是合适的,但到别人电脑上是很小的一点,看着不是很美观,所以想适配不同的屏幕。 比如在我的电脑上是这样: 在别人电脑上可能是这样(屏幕下方有一大块空白页面)...

    背景

    之前写过一个系统是在自己的电脑上调的,页面展示是合适的,但到别人电脑上是很小的一点,看着不是很美观,所以想适配不同的屏幕。

    比如在我的电脑上是这样:
    在这里插入图片描述
    在别人电脑上可能是这样(屏幕下方有一大块空白页面):
    在这里插入图片描述
    也可能是这样(右侧出现滚动条):
    在这里插入图片描述
    说明:造成这种情况绝对不是浏览器缩放的原因,都是100%。

    那如何让所有人电脑上展示的页面都能占满整个屏幕,不出现空白,也不会有滚动条?

    解决办法

    通过screen.width获得不同分辨率电脑屏幕的宽度,根据这个宽度调节不同分辨率页面内容的高度,就可以做到适配

    var screenw=screen.width;
    switch (screenw){
        case 1920:
            $('#xmlContent').css("height",620);
            break;
        case 1536:
            $("#xmlContent").css("height",486);
            break;
        case 1280:
            $("#xmlContent").css("height",445);
            break;
    
    }
    
    展开全文
  • !...如图,日历使用了gridview,我想把星期一栏的高度调小一点,但是因为gridview是wrap ...当我把第一行高度调小其他行高度不变时,会出现日期无法全部显示的现象,日历下面被遮挡住了一部分。 希望大神们帮忙解决一下。
  • “在这个图片里我们有不同高度的墙。这个图片由一个整数数组所代表,数组中每个数是墙的高度。上边的图可以表示为数组[2,5,1,2,3,4,7,7,6]”  “假如开始下雨了,那么墙之间的水坑能够装多少水呢?” “以1×1...

             题目在伯乐在线中看到的,据说是twitter面试时的题目,感觉蛮有意思的。于是就将两种算法都用C++实现了,就当练练手吧。


            “在这个图片里我们有不同高度的墙。这个图片由一个整数数组所代表,数组中每个数是墙的高度。上边的图可以表示为数组[2,5,1,2,3,4,7,7,6]”

           “假如开始下雨了,那么墙之间的水坑能够装多少水呢?”


         “以1×1的方块为单位计算容积。所以,在上边的图中下标为1以左的都会漏掉。下标7以右的也会漏掉。剩下的只有在1和6之间的一坑水,容积是10”

            作者已经给出了两种算法,逻辑如下:

            两次遍历的算法:

            如果我们从左至右遍历列表,每个下标水的量最多是到现在为止最大的数。这表示如果我们已知右边有相等或更大的,我们可以知道存下的水有多少。反向遍历的时候也一样:如果我们知道左边有比右边最大的数更大的,我们装水是毫无问题的。

            基于这个想法,一个解决方法是:先找到最大值,从左遍历到最大值,然后从右遍历到最大值。这个方法需要两次遍历:一次找到最大值,另一次分成了两个子遍历。

            一次遍历的算法:

            一次遍历的方法通过两端的指针相向移动避免了寻找最大值。如果(左指针找到的左指针以左的最大值)小于(右指针找到右指针以右的最大值),将左指针向右移动一位。否则右指针向左移动一位。重复过程直到两个指针相遇。(解释起来很麻烦,但是代码很简单)

            下面是用C++的算法实现:

            两次遍历:

    /************************************************************************/
    /* 两次遍历的方法                                                                     */
    /************************************************************************/
    int calculateVolume(int arrays[],int length){
    	
    	//先求出数组中的最大值,第一次遍历
    	int max=0;//最大值
    	int max_pos;//最大值对于数组的下标
    	for (int i=0;i<length;i++)
    	{
    		if (max<arrays[i])
    		{
    			max=arrays[i];
    			max_pos=i;
    		}
    	}
    
    	int max_left=0;//从左边开始遍历时的极大值
    	int max_right=0;//从右边开始遍历时的极大值
    	int volume=0;//容积
    
    	//从左边开始向右遍历到最大值处
    	for(int i=0;i<max_pos;i++){
    		//不断更新左边的极大值
    		if (max_left<arrays[i])
    		{
    			max_left=arrays[i];
    		}
    		//否则,加上新增加的容积
    		else{
    			volume+=(max_left-arrays[i]);
    		}
    	}
    
    	//从最右边开始向左遍历到最大值处
    	for(int j=length-1;j>max_pos;j--){
    		//不断更新右边的极大值
    		if (max_right<arrays[j])
    		{
    			max_right=arrays[j];
    		}
    		//否则,加上新增加的容积
    		else{
    			volume+=(max_right-arrays[j]);
    		}
    	}
    	
    	return volume;
    }
    

    测试:

    void main(){
    	int arrays1[]={2,5,1,2,3,4,7,7,6};
    	int arrays2[]={2,5,1,3,1,2,1,7,7,6};
    	int arrays3[]={6,1,4,6,7,5,1,6,4};
    	std::cout<<"arrays1 voleme: "<<calculateVolume(arrays1,9)<<std::endl;
    	std::cout<<"arrays2 voleme: "<<calculateVolume(arrays2,10)<<std::endl;
    	std::cout<<"arrays3 voleme: "<<calculateVolume(arrays3,9)<<std::endl;
    }


            一次遍历的算法:

    /************************************************************************/
    /* 一次遍历的方法                                                                     */
    /************************************************************************/
    int calculateVolumeEx(int  arrays[],int length){
    	int pos_left=0;//从左开始遍历的指针的下标
    	int pos_right=length-1;//从右开始遍历的指针的下标
    	int max_left=arrays[pos_left];//从左开始遍历的过程中的极大值
    	int max_right=arrays[pos_right];//从右开始遍历的过程中的极大值
    	int volume=0;//保存容积的变量
    
    	//当右边的指针的下标大于坐标指针的下标时,重复循环
    	//循环调出时即遍历完了数组中的所有元素
    	while(pos_right>pos_left){
    
    		//如果左指针找到的极大值小于右指针找到的极大值,左指针右移
    		if (max_left<max_right)
    		{
    			pos_left=pos_left+1;
    
    			//当左指针指向的新的元素大于之前找到的极大值时,用新的值替换极大值
    			if (arrays[pos_left]>=max_left)
    			{
    				max_left=arrays[pos_left];
    			}
    			//否则总容积加上新的容积
    			else{
    				volume+=(max_left-arrays[pos_left]);
    			}
    		}
    		//如果左指针找打的极大值大于或等于右指针找到的极大值,右指针左移
    		else{
    			pos_right=pos_right-1;
    			int tmp_right=arrays[pos_right];//保存右指针指向的临时变量
    
    			//当右指针指向的新的元素大于之前找到的极大值时,用新的值替换极大值
    			if (arrays[pos_right]>=max_right)
    			{
    				max_right=arrays[pos_right];
    			}
    			//否则总容积加上新的容积
    			else{
    				volume+=(max_right-arrays[pos_right]);
    			}
    		}
    	}
    
    	return volume;
    
    }

    测试:

    void main(){
    	int arrays1[]={2,5,1,2,3,4,7,7,6};
    	int arrays2[]={2,5,1,3,1,2,1,7,7,6};
    	int arrays3[]={6,1,4,6,7,5,1,6,4};
    	std::cout<<"arrays1 voleme: "<<calculateVolumeEx(arrays1,9)<<std::endl;
    	std::cout<<"arrays2 voleme: "<<calculateVolumeEx(arrays2,10)<<std::endl;
    	std::cout<<"arrays3 voleme: "<<calculateVolumeEx(arrays3,9)<<std::endl;
    }


    展开全文
  • 可使用窗口高度,即:屏幕高度(screenHeight) - 导航(tabbar)高度 - 导航栏高度 - 状态栏高度。 在不含导航(tabbar)的页面, windowHeight =屏幕高度(screenHeight) - 导航栏高度 - 状态栏高度   了解...

    小程序可以通过wx.getSystemInfo获取系统信息

     

     1. windowHeight 概念

    可使用窗口高度,即:屏幕高度(screenHeight) - 导航(tabbar)高度 - 导航栏高度 - 状态栏高度。

    在不含导航(tabbar)的页面,

    windowHeight =屏幕高度(screenHeight) - 导航栏高度 - 状态栏高度

     

    了解规则

    iPhone X : 导航栏高度 44 、 状态栏高度 44 、tabBar高度 83 
    其他机型 : 导航栏高度 44 、 状态栏高度 20 、 tabBar高度 49

     

     

    2.使用windoeHeight

    在页面中调用wx.getSystemInfo即可获取当前页面的屏幕高度,

    wx.getSystemInfo({
          success: function (res) {
            console.log('--------------获取系统信息,获取屏幕高度---------------')
            console.log(res)
          },
          fail: function (res) { },
          complete: function (res) { },
        })

    3.不同页面WINDOWHEIGHT不一致解决办法

    但是不同页面获取的屏幕高度不同,为了方便使用,将WINDOWHEIGHT写入全局变量,在含有的TabBar页面正常调用,在不含的TabBar页面加上的TabBar的高度使用

    app.js

    onLaunch(){
         // 获取屏幕高度
        wx.getSystemInfo({
          success: function (res) {
            that.globalData.windowHeight = res.windowHeight
          },
        })
    },
     globalData: {
        windowHeight:''
    }

    含有的TabBar的页面

    xxx.js

    var app = getApp();
    
    data:{
        windowHeight: app.globalData.windowHeight,
    }

    不含的TabBar的页面

    xxx.js

    var app = getApp();
    
    data:{
        windowHeight: app.globalData.windowHeight + 48,
    }

    页面使用

    xxx.wxml

    <view style='height:{{windowHeight+"px"}}'>

     

     

    在app.js中获取到的WINDOWHEIGHT包含的TabBar的高度

    所以在不含的TabBar的页面比含的TabBar页面需要多加一个的TabBar的高度

     

     

     

    以下为小程序官方文档wx.getSystemInfo的介绍

    wx.getSystemInfo(Object object)

    获取系统信息

    参数

    对象对象

    属性类型默认值是否必填说明支持版本
    成功功能 接口调用成功的回调函数 
    失败功能 接口调用失败的回调函数 
    完成功能 接口调用结束的回调函数(调用成功,失败都会执行) 

    object.success回调函数

    参数

    对象资源

    属性类型说明支持版本
    手机品牌> = 1.5.0
    模型手机型号 
    pixelRatio设备像素比 
    屏幕宽度屏幕宽度> = 1.1.0
    screenHeight屏幕高度> = 1.1.0
    WINDOWWIDTH可使用窗口宽度 
    WINDOWHEIGHT可使用窗口高度 
    statusBarHeight状态栏的高度> = 1.9.0
    语言微信设置的语言 
    微信版本号 
    系统操作系统版本 
    平台客户端平台 
    fontSizeSetting用户字体大小设置。以“我 - 设置 - 通用 - 字体大小”中的设置为准,单位px。> = 1.5.0
    SDKVersion客户端基础库版本> = 1.1.0
    benchmarkLevel(仅Android)性能等级,-2或0:该设备无法运行小游戏,-1:性能未知,> = 1设备性能值,该值越高,设备性能越好(目前设备最高不到50)> = 1.8.0
    展开全文
  • 问题: ViewPager 嵌套多个Fragment,但是每个Fragment高度不一致,导致高度比较小的Fragment底部留有大片空白区域。 解决方法: 参考文章 关于ViewPager高度自适应(随着pager页的高度改变Viewpager的高度) ...
  • 微信小程序input高度问题及placeholder与input的高度冲突问题 大家在用到input组件的时候肯定有这个问题,为什么input的高度不能调低,为什么placeholder的光标突出了input的高度。下面来跟大家说下 一、input高度...
  • 前端小白的uni-app艰难学习之路 解决 在自定义标题栏时,虽然可以自由定义标题栏内容了,但我们通常...在注意里也提到了微信小程序环境下iPhoneX是需要判断机型来设置高度的 /* iPhone X in portrait & landscap...
  • TextView的高度测量问题

    千次阅读 2016-12-19 15:03:04
    最近被TextView的高度测量问题搞得好烦,最终在http://blog.csdn.net/tianlan996/article/details/50408169 这篇博客过后才搞懂原因,其实过这篇文章后才想起 以前过的视频里也有提到这个问题,只是我忘了,...
  • table元素的宽度/高度设置问题

    万次阅读 2017-02-24 10:22:35
    昨天在写页面的时候遇到一个很奇怪的问题,我想把页面里面的table元素的高度在css文件里面进行设置为0,可是用 height: 0; 这句话一直没有效果,最后我换用了ul才达到了想要的效果。不过,这是个问题,今天上午我...
  • weex页面高度问题

    千次阅读 2019-04-08 09:51:52
    实现的效果是底部tab切换三个页面,刚开始一直纠结中间高度要怎么设置,然后就各种查资料 let deviceHeight = weex.config.env.deviceHeight / weex.config.env.deviceWidth * 750; 页面整个高度这样设置 然后...
  • TableHeaderView 高度问题

    千次阅读 2016-12-14 11:44:34
    经常要改变tableview 头视图的高度(是tableview的头视图 不是cell分区的头视图) 改变frame 经常变化不过来 重置frame后 一定要用下面一行代码 重新给tableview赋值  self.tableHeaderView.frame = ...
  • uniapp 解决swiper Tab选项卡切换高度自适应问题

    万次阅读 热门讨论 2019-09-20 16:43:40
    uniapp 解决swiper滚动高度自适应问题 问题描述:使用的是uniapp 官网案例中的一个swiper插件(插件名:uni-swiper-dot),当需要tab滚动,但是它又只能在最外层的swiper处设置一个固定的高度,纠结很久以后,终于想...
  • css实现多列高度不同的div等高

    千次阅读 2018-04-30 20:43:02
    设置父容器设置超出隐藏(overflow:hidden),这样子父容器的高度就还是它里面的列没有设定padding-bottom时的高度,当它里面的任 一列高度增加了,则父容器的高度被撑到里面最高那列的高度,其他比这列矮的列会用...
  • body高度与内容总高度不一致问题

    千次阅读 2016-01-13 15:12:59
    body没有设置height:100%,查了很久也没找出到底是哪出了问题,最后对比不同浏览器上的展现时突然发现,其他浏览器上缺少声明,唯独firefox上是有的,查看源码发现是缺少,把这个加上后各浏览器就一致了。...
  • 安卓TableRow高度问题

    千次阅读 2017-07-07 14:36:09
    安卓TableRow的高度无法设置,设置了也无效,TableRow组件的高度也无法改变TableRow的高度,但可以通过TableRow组件的TextSize来调整高度。 但我想在TableRow里加LinearLayout应该是可以实现高度调节的,具体的有空...
  • css解决高度自适应问题(使用flex)

    万次阅读 2019-02-13 10:41:20
    css解决高度自适应问题(使用flex) 这篇文章通过flex来解决高度自适应问题,纯用css,还是昨天这个例子 需求和上篇文章一样,这里再重复一遍 需求: 这个矩形的高度和浏览器窗口的高度相同,不能出现纵向...
  • div高度自适应问题杂谈

    千次阅读 2012-01-03 18:27:44
    很多的Web designer在刚接触W3C标准的时候,都遇到过高度自适应的问题。因为div等对象的height:100%;并不能够直接产生实际效果,于是开始怀疑浏览器是否支持height:100%;的编写方法?当然不是,最明显的例子就是...
  • uniapp swiper Tab选项卡切换高度自适应问题 uniapp swiper Tab选项卡切换高度自适应问题 swiper需要指定固定高度,但数据是动态加载的,所以高度需要自适应。 基本思路:就是获取展示内容的高度 赋值给swiper。但是...
  • div自适应的情况下,内部嵌入iframe,iframe边框什么的全部设置0,本以为外层div可以完美自适应,结果div在不同浏览器却硬是多出3-5个像素的高度。 找了下相关文章,发现确有此问题,有人说用负的margin值,可终究...
  • 不同高度的图片 底部对齐方法

    千次阅读 2015-01-27 11:11:44
    的图片是作为背景还是对象;背景的话直接就可以实现底部对齐,如果以对象插入,正如楼上所说,绝对定位(将要设置对齐的父div的定位样式position设置为relative,然后再将其自身div也就子div的position设置为...
  • 内联框架高度iframe自适应问题

    千次阅读 2016-10-04 20:59:56
    根据菜单栏的点击改变右边内联框架的链接页面,那么问题来了,不同的页面高度不一样。    一直在网上找各种解决方法,但都不能完美解决我的问题。 纠结了2天。结果在某天洗澡的时候突然醒悟。为什么我要执着于...
  • cell.contentView.frame.size.height 返回高度问题
  • ionic3 不同slide高度,自动计算

    千次阅读 2018-01-18 15:00:32
    ionic的ion-slides一直有不同slide的高度为最大slide的高度问题。 如果遇到 page1:height:1400px page2:height:932px, 两个页面的高度都会是1400px。 现在需要不同页面的高度从新计算, 我的解决方式...
  • IOS BUG记录 boundingRectWithSize计算内容宽度高度问题在IOS6和IOS7不同的系统出现的计算文本高度的方法不一样 IOS6中我们使用以下两个方法计算文本高度 (CGSize)sizeWithFont:(UIFont *)font constrainedToSize...
  • 小程序 flex布局中高度问题

    千次阅读 2019-07-18 14:47:07
    在开发中遇到这么一个问题,子元素flex:1,导致了内部元素设置height:100%没有高度。 导致问题原因: height:100%是在元素flex属性生效前计算的,生效前计算也就意味着还没有高度,最后导致height == 0 解决方案...
  • uni-app swiper内容高度自适应问题解决

    千次阅读 2020-10-27 15:17:53
    轮播图内容非图片而是文本内容时,高度无法自适应问题处理 在切换轮播时调用该方法,给swiper标签赋高 getSwiperHeight() { let query = uni.createSelectorQuery().in(this); query.select(element)....
  • 解决iframe跨域高度自适应问题

    千次阅读 2011-01-12 17:08:00
    前期因项目需要解决iframe跨域高度自适应问题,但在网上找了许久也没找到能用的,几乎都是转载的,也没经过测试,当时就不了了知了。最近该项目又要实现这种功能,没办法,硬着头皮也要上呀。通过查阅资料及加上自己...
  • 最近给公司做一个活动页面,遇到了一个没有遇到过的问题。 我写了一个页面,在页面的最下面,有一个动态按钮,点击可以向下滑动,如下图 这些东西要在一个页面上全部显示出来,然后出问题了; 我的手机与老总的手机...
  • 在进行跨步宽度和高度定义的时候,需要搞清楚两个概念:1.画布的宽和高(ps新建画布的宽和高);2.画布所在画板的宽和高(例如ps打开后的窗口);默认的画板、画布的宽和高是都是300*150的。但在画布上设置style属性...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 411,386
精华内容 164,554
关键字:

不同高度看问题