精华内容
下载资源
问答
  • 文章来自:源码在线https://shengli.me/javascript/234.html   jQuery的方法:   以上的方法,不能写在页面加载完成事件函数$(function(){})内部,而需要写在外面。 页面加载完成事件: ... ...

    文章来自:源码在线https://shengli.me/javascript/234.html

     

    jQuery的方法:

     

    以上的方法,不能写在页面加载完成事件函数$(function(){})内部,而需要写在外面。

    页面加载完成事件:

     代码:

     

     

    展开全文
  • 初始化tkinter窗口: import tkinter as tk class MyWindow: def __init__(self): self.window = tk.Tk() # 设置窗口标题 self.window.title('ImageCape') self.window.wm_title('ImageCape') # 默认窗口...

    初始化tkinter窗口:

    import tkinter as tk
    
    
    class MyWindow:
        def __init__(self):
            self.window = tk.Tk()
            # 设置窗口标题
            self.window.title('ImageCape')
            self.window.wm_title('ImageCape')
            # 默认窗口包含标题栏
            self.window.overrideredirect(False)
            # 初始化窗口大小并自适应屏幕居中
            self.window.geometry(str(S_WIDTH) + 'x' + str(S_HEIGHT) + '+'
                                 + str((self.window.winfo_screenwidth() - S_WIDTH) // 2) + '+'
                                 + str((self.window.winfo_screenheight() - S_HEIGHT) // 2 - 18))
    

    注册窗口大小变化事件:

            # 注册(绑定)窗口变动事件
            self.window.bind('<Configure>', self.window_resize)

    实践证明,'<Configure>'事件会在被绑定的self.window_resize()方法中多次反馈窗口大小信息,包含重复的。所以需要进行去重监听数据适应变化。

    window_resize():

    import tkinter as tk
    
    
    class MyWindow:
        # ...
        def window_resize(self, event=None):
            if event is not None:
                # listen events of window resizing.
                # 窗口宽高任一值产生变化,则记录并使展示高清大图自适应窗体调整。
                if self.window_width != self.window.winfo_width() or self.window_height != self.window.winfo_height():
                    if self.window_width != self.window.winfo_width():
                        self.window_width = self.window.winfo_width()
                    if self.window_height != self.window.winfo_height():
                        self.window_height = self.window.winfo_height()
                    # What happens here?
                    # 重新设置展示的图片大小
                    self.load_image(self.image_pos)

    load_image():

        def load_image(self, position=0):
            if len(self.caches) > 0 and len(self.caches) > position >= 0:
                try:
                    image = resize_image(self.cache_paths[position], screen_width=self.window.winfo_width(),
                                   screen_height=self.window.winfo_height())
                    photo = ImageTk.PhotoImage(image)
                    # 假设这里是使用Label组件显示高清图片
                    self.label.config(image=photo)
                    self.label.image = photo
                    # print(self.caches[position])
                except FileNotFoundError:
                    self.reload_caches()
            else:
                photo = None
                self.label.config(image=photo)
                self.label.image = photo

    resize_image():

    """
    @author: MR.N
    @created: 2021-08-22 Sun. 21:54
    
    """
    from PIL import Image, ImageTk
    
    # 初始化窗口宽高
    S_WIDTH = 876
    S_HEIGHT = 720
    # 初始化左边高清大图宽高
    I_WIDTH = 710
    I_HEIGHT = 682
    # 初始化右边缩略图宽高
    SUB_WIDTH = 166
    SUB_HEIGHT = 166
    
    
    def resize_image(path, scale=-1, screen_width=0, screen_height=0):
        image = Image.open(path)
        if scale == -1:
            # 高清大图原始宽高
            raw_width, raw_height = image.size[0], image.size[1]
            # 减去右边缩略图宽的最大宽度,减除工具栏(假设有且高40)的最大高度
            max_width, max_height = max(I_WIDTH, screen_width-SUB_WIDTH), max(I_HEIGHT, screen_height-40)
            min_height = min(max_height, raw_height)
            # 按比例缩放高清大图
            min_width = int(raw_width * min_height / raw_height)
            # 如果大图超出窗体显示区域,进行第二次(或多次)缩放
            if min_width > max_width:
                min_width = min(max_width, raw_width)
                min_height = int(raw_height * min_width / raw_width)
        return image.resize((min_width, min_height))
    

    笔记:

            一般初次启动窗口最好预设初始化窗体的宽高。如此一来,在后续组件自适应窗体大小的变化就方便多了,按照缩放比例乘除法即可。

    展开全文
  • 主要介绍了js实现浏览器窗口大小被改变时触发事件的方法,实例分析了[removed]方法的使用技巧,需要的朋友可以参考下
  • 在Vue工程中,添加样式,部分需要做到...所以在监听resize事件,需要在 mounted() 添加监听时间,然后在 destroyed() 钩子函数中将其移除 mounted() { this.handleResize(); window.addEventListener("resize", t

    Vue工程中,添加样式,部分需要做到自适应,需要添加resize事件,由于是单页面应用,如果组件初始化的时候绑定事件,在切换页面的时候不去注销事件,如果来回切换,会让resize事件执行多个函数,迅速消耗CPU,浏览器会出现卡顿的情况

    所以在监听resize事件,需要在 mounted() 添加监听时间,然后在 destroyed() 钩子函数中将其移除

    mounted() {
        this.handleResize();
        window.addEventListener("resize", this.handleResize);
      },
    destroyed() {
        window.removeEventListener("resize", this.handleResize);
    },
    
    methods(){
     handleResize() {
          var kanbanHeigh = {
            maxHeight: document.getElementById("kanban").offsetHeight - 86 + "px",
          };
          this.kanbanListStyle = kanbanHeigh;
        },
    }
    

    removeEventListeneraddEventListener相对应,用于移除事件监听。

    如果要移除事件句柄,addEventListener() 的执行函数必须使用外部具名函数,匿名函数事件是无法移除的。

    顺便附上 js获取元素高度和宽度的方法

    javascript中获取dom元素高度和宽度的方法如下:

    网页可见区域宽: document.body.clientWidth
    网页可见区域高: document.body.clientHeight
    网页可见区域宽: document.body.offsetWidth (包括边线的宽)
    网页可见区域高: document.body.offsetHeight (包括边线的高)
    网页正文全文宽: document.body.scrollWidth
    网页正文全文高: document.body.scrollHeight
    网页被卷去的高: document.body.scrollTop
    网页被卷去的左: document.body.scrollLeft

    对应的dom元素的宽高有以下几个常用的:

    元素的实际高度:document.getElementById(“div”).offsetHeight
    元素的实际宽度:document.getElementById(“div”).offsetWidth
    元素的实际距离左边界的距离:document.getElementById(“div”).offsetLeft
    元素的实际距离上边界的距离:document.getElementById(“div”).offsetTop

    展开全文
  • vue 监听windows窗口大小变化 同时修改页面所有echart的大小 网上有很多关于这方面的文章,搜索后大部分比较复杂,自己整理一下适合自己的,直接上代码 data(){ return { timer: false } }, mounted(){ const ...

    vue 监听windows窗口大小变化 同时修改页面所有echart的大小

    网上有很多关于这方面的文章,搜索后大部分比较复杂,自己整理一下适合自己的,直接上代码

     data(){
            return {
             	timer: false
            }
    },
    mounted(){
            const that = this
            window.onresize = function(){
                if (!that.timer) {
                    that.timer = true
                    setTimeout(function () {
                        if(this.myChart){
    				         this.myChart.resize()
    				     }
                        that.timer = false
                    }, 400)
                }
            }
        },
    

    只需要监听窗口大小,上面的代码已经够了,然后是echart大小改变的一个细节,我是每个echart图表都是一个组件,一个父组件有多个echart子组件,如下

    <Radar  ref="Radar" class="radar" :series="radarSeries" :legend="[]"></Radar>
    <AreaGraph ref="AreaGraph" class="graph" :series="areaGraphSeries"></AreaGraph>
    

    开始我在每个子组件都写了一个上面的方法,但是发现页面只有一个图标会随着浏览器大小改变而改变,后面发现需要在父组件绑定才能同时改变所有的图表。水平有限不知道为什么,如果有大神有幸看到这篇文章可以帮我解疑,不胜感激。

    父组件代码:

    const that = this
            window.onresize = function(){
                if (!that.timer) {
                    that.timer = true
                    setTimeout(function () {
                        that.$refs.Radar.resizeChart()
                        that.$refs.AreaGraph.resizeChart()
                        that.timer = false
                    }, 400)
                }
            }
    

    子组件代码:

     resizeChart(){
     	 if(this.myChart){
             this.myChart.resize()
         }
     },
    
    展开全文
  • 监听窗口大小变化 function changeHeight(){ let h = document.documentElement.clientHeight; document.getElementById( "searchResult").style.height = h - 9 - 74 + 'px' ; document.getElementById( ...
  • js监听窗口变化动态改变div大小

    千次阅读 2018-12-06 13:50:18
    js监听窗口变化动态改变div大小 function getHeight(val) { this.processHeight=(window.innerHeight || document.documentElement.clientHeigh)-210 +'px... //通过注册resize监听器,实现对窗口大小监听 ...
  • Mac 如何更改 iTerm 的默认窗口大小
  • C# WPF中监听窗口大小变化事件

    千次阅读 2018-01-09 22:05:11
    C#中WPF框架下为了监听窗口大小变化,需要实现窗口的SizeChanged事件,具体做法如下: 首先需要在窗口构造函数中为SizeChanged绑定处理事件: public MainWindow() { InitializeComponent(); this....
  • 1、绑定表格高度,在el-table标签里面设置 :max-height="tableHeight" 2、设置表格高度,在data里面设置 ...3、设置监听窗口变化方法,在methods里面设置 handleTableHeight: function() { var _this = this; ...
  • data () { return { screenWidth: document.body.clientWidth } }, mounted () { // 监听窗口大小 window.onresize = () => { return (() => { this.screenWidth = docu...
  • electron改变窗口大小并记录当前大小

    千次阅读 2019-12-16 15:39:53
    在electron中寻找api,终于找到关键getContentBounds(),调用mainWindow.getContentBounds()可以获取当前窗口大小 先在主进程中设置好窗口移动的监听事件 在渲染进程中作为接收处理分发出去 最后在业务代码中...
  • 起因 今天写页面的时候突然有...平常,都是在整个浏览器窗口变化时触发一个修改布局的回调函数。使用的是window对象的resize事件,利用: [removed] = callback; 来绑定。但根据resize事件的target是defaultView (w
  • css监听窗口变化

    千次阅读 2017-03-15 10:36:45
    监听窗口变化 .demo{ color: red; } /当窗口小于850的时候执行/ @media screen and (max-width: 850px){ .demo{ color: aqua; } }
  • 我们通常会有当一个UI大小发生变化时去触发某个事件的需求。unity提供了这些事件,在UnityEngine.EventSystems.UIBehaviour下。当我们新建一个脚本继承自UnityEngine.EventSystems.UIBehaviour类,并且将脚本挂载在...
  • js设置iframe自适应高度 浏览器窗口变化改变iframe高度
  • var i=0; function RefreshBody(){ ...$(“p”).html(“浏览器窗口改变”+i); } window.onresize = RefreshBody;//刷新调用 $(document).ready(function(){ RefreshBody();//刷新调用 }); 以上为示例,需引用jquery脚本
  • $(window).resize(function() {   alert("change") });  
  • vue electron窗口大小控制

    千次阅读 2018-10-12 09:36:00
    2019独角兽企业重金招聘Python工程师标准>>> ...
  • 监听屏幕大小变化

    千次阅读 2020-10-14 16:37:30
    首先要明确一点就是再做响应式布局的时候,原理基本上都是通过rem来实现的。 // 监听手机窗口变化,重新设置 window.addEventListener('resize', ...//原理:通过addEventListener()监听屏幕大小的变化动态的更改f.
  • 1.320尺寸 2.414尺寸 3.768尺寸 .../* 监听窗口大小发生改变时*/ window . addEventListener ( 'resize' , change , false ) ; } ) ( ) ; < / script > < / body > < / html >
  • 所以需要借助窗口最大化最小化,在主进程和渲染进程的通信消息来处理,记录一下 主进程代码如下 import { app, BrowserWindow, ipcMain, screen } from 'electron'; let mainWindow const winURL = process...
  • 设置目标窗口大小(Windows,C++)

    千次阅读 2020-03-20 21:08:13
    有时候要准确设置一个窗口大小,没有找到合适的工具,自己写了一个。 命令行程序(70 行代码 C++): #include <windows.h> #include <iostream> #define IsKeyDown(VK_NAME) ((GetAsyncKeyState...
  • Vue - 实时监听浏览器窗口宽高变化

    千次阅读 2021-06-01 16:17:59
    在生命周期钩子函数 mounted() 中通过 document.body.clientWidth | document.body.clientHeight 获取浏览器宽高,然后通过 window.onresize 监听浏览器窗口变化,当变化时修改 data() 变量来实现。 <template>...
  • Echarts窗口大小改变,重新渲染内容

    千次阅读 2020-07-22 19:35:16
    在用echarts渲染页面的时候,让我们改变浏览器窗口大小,有时候发现echarts所在的div并没有什么变化,这样看起来十分的丑陋,特别是自适应布局的时候,缩小窗口很容易导致多个窗口重叠在一起,其实解决这个办法很...
  • 在画图方法里,写window.onresize()没有实现echart图的自适应: 代码是不是这样的? this.mychart.setOption(option) var that = this window.onresize = function() { ...无论怎样改变浏览器窗口大小...
  • 获取浏览器的窗口大小和限制的调整大小事件。 安装 npm install browser-size --save 用法 创建一个新的浏览器大小实例并添加一个监听器 var browser = require ( 'browser-size' ) ( ) browser . on ( 'resize' ,...
  • 当我们让div居中时候,一般有两种方法,一种是固定左右宽度,也就是使用像素绝对定位;另一种是用百分比来相对定位,在这种两种方式下,绝对定位是不能让div随着屏幕而自适应的,而用百分比就可以,但是,是用百分比...
  • 直接上代码: vue中使用的,如果要在原生js中使用,... // 监听网页窗口的改变动态改变窗口的高度 let that = this; $(window).resize(function() { that.GetPageHeight(); }); this.GetPageHeight(); } };

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 45,500
精华内容 18,200
关键字:

更改窗口大小监听