小编Ant*_*ton的帖子

在边框拖放时调整div的大小,而不添加额外的标记

我有一个绝对定位的侧面板,我需要通过拖动这个边框来改变它的宽度.此外,我需要更改边框悬停上的光标.是否可以在不添加另一个div进行拖动的情况下执行此操作?

这是标记:

#right_panel {
    position: absolute;
    border-left: solid 3px #ccc;
    width: 100px;
    height: 100%;
    right: 0;
    background-color: #f0f0f0;
}
Run Code Online (Sandbox Code Playgroud)
<body>
    <div id="right_panel"></div>
</body>
Run Code Online (Sandbox Code Playgroud)

我不需要完整的解决方案.是(带文档参考)/没有答案就足够了.我不需要助手的回答div.我已经有一个:

var m_pos;
function resize(e){
    var parent = resize_el.parentNode;
    var dx = m_pos - e.x;
    m_pos = e.x;
    parent.style.width = (parseInt(getComputedStyle(parent, '').width) + dx) + "px";
}

var resize_el = document.getElementById("resize");
resize_el.addEventListener("mousedown", function(e){
    m_pos = e.x;
    document.addEventListener("mousemove", resize, false);
}, false);
document.addEventListener("mouseup", function(){
    document.removeEventListener("mousemove", resize, false);
}, false);
Run Code Online (Sandbox Code Playgroud)
#right_panel {
    position: absolute;
    width: 96px;
    padding-left: …
Run Code Online (Sandbox Code Playgroud)

html javascript css

18
推荐指数
4
解决办法
3万
查看次数

如何在不使用背景位置的情况下为线性渐变设置动画?

我正在尝试创建内容加载器,但背景动画出现性能问题。当屏幕上只有几个元素时,它会很流畅,但在将存根元素数量增加到 20-30 的同时会大幅降低 fps。现在我知道动画背景位置属性是一个坏主意,最好为此使用变换。但我该怎么做呢?我想保持无缝动画。渐变应该相对于屏幕,而不是容器。

这是一些代码:

const cardsRoot = document.getElementById('cards')
const addButton = document.getElementById('add')
const card = document.getElementsByClassName('card')[0]
let cardsCount = 1

addButton.addEventListener('click', () => {
  cardsRoot.innerHTML = ''
  cardsCount++
  for (let i = 0; i < cardsCount; i++) {
    let cardClone = card.cloneNode(true)
    cardsRoot.appendChild(cardClone)
  }
})
Run Code Online (Sandbox Code Playgroud)
body {
  padding: 40px;
}

.card {
  display: flex;
  margin-top: 20px;
}

.stub {
  width: 300px;
  height: 12px;
  margin: 8px;
  border-radius: 8px;
  background: linear-gradient(to right, rgba(0, 0, 0, 0.04), rgba(0, 0, 0, 0.1) 10%, …
Run Code Online (Sandbox Code Playgroud)

html css linear-gradients css-animations

6
推荐指数
1
解决办法
397
查看次数

使用量角器与颜色输入交互

设置复选框或文本输入值很简单。但是如何使用量角器将值设置为使用颜色类型输入?我试图这样做:

element(by.id("prop_border-color")).click();
browser.driver.actions()
    .sendKeys(protractor.Key.BACK_SPACE)
    .sendKeys(protractor.Key.BACK_SPACE)
    .sendKeys("00")
    .sendKeys(protractor.Key.ENTER)
    .perform();
Run Code Online (Sandbox Code Playgroud)

但它触发了这个错误:

失败::无法从“窗口”读取“sessionStorage”属性:“数据:”URL 中的存储被禁用。

是否可以以某种方式与颜色选择器窗口交互?

更新:

全面测试:

describe('Panel Editor app', function() {

    function addToplevel() {
        var elem = element(by.css(".widget-list-item-toplevel"));
        var target = element(by.id('droparea'));
        browser.driver.actions()
            .mouseDown(elem)
            .mouseMove(target)
            .mouseUp(target)
            .perform();
    }

    function addToToplevel(selector) {
        var elem = element(by.css(selector));
        var target = element(by.css('.toplevel'));
        browser.driver.actions()
            .mouseDown(elem)
            .mouseMove(target)
            .mouseUp(target)
            .perform();
    }

    beforeEach(function() {
        browser.get('http://localhost:8080/webapps/panel_editor/index.html');
    });

    afterEach(function() {
        browser.executeScript('window.sessionStorage.clear();');
        browser.executeScript('window.localStorage.clear();');
    });


    it('should check all widgets in toplevel', function() {
        addToplevel();

        addToToplevel(".widget-list-item-rows");
        browser.sleep(300);
        element(by.model("dialogCtrl.dialogs.widget.widget_model.props[q].value")).clear().sendKeys(4);
        element(by.id("widget_modal")).element(by.buttonText("OK")).click();
        browser.sleep(300);

        element.all(by.css(".builder-rows > div")).then(function(rows) { …
Run Code Online (Sandbox Code Playgroud)

testing end-to-end protractor

5
推荐指数
1
解决办法
1201
查看次数

无法在颤振测试中加载资产

rootBundle 在应用程序中运行良好,但在测试中它抛出异常 ERROR: Unable to load asset: assets/config/prod.json

配置.dart

import 'dart:convert';
import 'package:flutter/services.dart' show rootBundle;

class Configuration {

  final Map<String, String> _config = {};

  String get(String key) {
    return _config[key];
  }

  Future<void> load() async {
    _config.clear();
    final configString = await rootBundle.loadString('assets/config/prod.json');
    final configJson = jsonDecode(configString) as Map<String, dynamic>;
    _config.addAll(Map.castFrom<String, dynamic, String, String>(configJson));
  }

}
Run Code Online (Sandbox Code Playgroud)

configuration_test.dart

import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:my_app/data/models/configuration.dart';

void main() {

  setUpAll(() {
    WidgetsFlutterBinding.ensureInitialized();
  });

  test('should load configuration', () async {
    final config = Configuration();
    await config.load(); …
Run Code Online (Sandbox Code Playgroud)

unit-testing assets flutter

4
推荐指数
2
解决办法
1926
查看次数

如何仅从XMLHttpRequest获取响应标头

是否可以仅从中获取响应头XMLHttpRequest而不下载文件数据?

javascript xmlhttprequest http-headers

2
推荐指数
1
解决办法
5040
查看次数

VIM:可视线模式的映射

我有此映射,可以通过在可视模式下按TAB来缩进几行:

vnoremap <Tab> >gv
vnoremap <S-Tab> <gv
Run Code Online (Sandbox Code Playgroud)

但这与snipmate插件冲突。有没有一种方法可以重新映射TAB按钮以仅在可视线模式(SV)下工作?

vim mappings

2
推荐指数
1
解决办法
1648
查看次数

在python中将文本写入zipfile

我有一个函数,它创建一个带有文本文件的zip存档.是否可以在不创建临时文件的情况下执行此操作?

import zipfile
import os

PROJ_DIR = os.path.join(os.path.dirname(os.path.abspath(__file__)))


def create_zip(name, text):
    with open(os.path.join(PROJ_DIR, "_tmp_file_"), "w+") as f: 
        f.write(text)

    zf = zipfile.ZipFile(os.path.join(PROJ_DIR, "%s.zip" % name), "w",
                         zipfile.ZIP_DEFLATED)
    zf.write(os.path.join(PROJ_DIR, "_tmp_file_"), "/file.txt")
    zf.close()
Run Code Online (Sandbox Code Playgroud)

python zipfile

1
推荐指数
1
解决办法
2389
查看次数

在打字稿的枚举中使用字符串变量

在打字稿中是否可以在枚举中使用字符串变量?我可以像这样在枚举中使用字符串:

enum AllDirections {
  TOP = 'top',
  BOTTOM = 'bottom',
  LEFT = 'left',
  RIGHT = 'right',
}
Run Code Online (Sandbox Code Playgroud)

但是这段代码:

const top: string = 'top'
const bottom: string = 'bottom'
const left: string = 'left'
const right: string = 'right'

enum AllDirections {
  TOP = top,
  BOTTOM = bottom,
  LEFT = left,
  RIGHT = right,
}
Run Code Online (Sandbox Code Playgroud)

结果有错误:Type 'string' is not assignable to type 'AllDirections'

enums typescript

1
推荐指数
1
解决办法
1763
查看次数

仅当图像位于视口内时才加载图像

我有一个带有 ListView 作为子项的脚手架,可以滚动。其顶部有一个标题容器和一个包含图像列表的列。

我只想在这些图像出现在视口中时加载这些图像,但所有图像都开始同时加载。

当我将此图像添加到 ListView 的子项时,不会发生这种情况,但我想将它们放入单独的小部件以保持代码干净。是否可以?

这是一个简化的示例:

const List<String> images = [
  'https://cataas.com/cat?hash=1',
  'https://cataas.com/cat?hash=2',
  'https://cataas.com/cat?hash=3',
  'https://cataas.com/cat?hash=4',
  'https://cataas.com/cat?hash=5',
  'https://cataas.com/cat?hash=6',
  'https://cataas.com/cat?hash=7',
  'https://cataas.com/cat?hash=8',
];

// Scaffold child
class Home extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return ListView(
      children: [
        // Header
        Placeholder(
          fallbackHeight: 300,
        ),
        Category(),
        SizedBox(height: 16),
        Category(),
      ],
    );
  }
}

class Category extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    print('Build category');
    return Column(
      children: [
        Padding(
          padding: EdgeInsets.all(32),
          child: Text('CATEGORY TITLE'),
        ),
        ...images.map((image) => CategoryItem(image)),
      ], …
Run Code Online (Sandbox Code Playgroud)

lazy-loading dart flutter

1
推荐指数
1
解决办法
1657
查看次数