小编jos*_*ron的帖子

React Component内联样式简写声明相互覆盖

我有一个 React 组件,它传递一个值对象,如下所示:

{gridColumn: '1 / 3', gridRow: '2 / 5', gridArea: 'header'}
Run Code Online (Sandbox Code Playgroud)

然后添加到组件的样式,例如:

this.cell.style.setProperty('grid-area', values.gridArea);
this.cell.style.setProperty('grid-column', values.gridColumn);
this.cell.style.setProperty('grid-row', values.gridRow);
Run Code Online (Sandbox Code Playgroud)

但是,使用 grid-column 和 grid-row 属性,它们会在浏览器中缩写为“grid-area: 2 / 1 / 5 / 3”的速记声明,并覆盖我的网格区域样式。

如果我将其设置为循环,也会发生这种情况:

for (let prop in values) {
  this.cell.style[prop] = values[prop];
};
Run Code Online (Sandbox Code Playgroud)

有一个更好的方法吗?

javascript css reactjs

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

如何让球在正确的方向上反弹而不是直线

原谅我在这里完全没有作为JS的新手.我创建了一个非常简单的画布,其中一个矩形由keydownevents控制,另一个在rAF中围绕画布移动.

我现在想要的是,如果移动的球击中用户矩形以碰撞并反弹但是以正确的角度反弹,它不仅仅是反向击中,就像我已经尝试过但失败了.

我知道我需要计算它在用户rect上的位置,但我不知道从哪里开始,或者有人能指出我正确的方向或给我一小段做什么?

因为不需要,我会省略空间的Keycode功能.

function init() {

    canvas = document.getElementById("canvasdemo");
    ctx = canvas.getContext("2d");

    canvasWidth = canvas.width;
    canvasHeight = canvas.height;

    drawSquare();
}

function drawSquare() {

  ctx.clearRect(0, 0, canvasWidth, canvasHeight);
  // user controlled square
  ctx.fillStyle = "blue";
  ctx.fillRect(rect.x, rect.y, rect.w, rect.h);
  requestAnimationFrame(drawSquare); 


  if (rect.x + rect.vx > canvasWidth - 20 || rect.x + rect.vx < 0)
    rect.vx = -rect.vx;
  if (rect.y + rect.vy > canvasHeight - 20 || rect.y + rect.vy < 0)
    rect.vy = -rect.vy;

  rect.x += rect.vx;  
  rect.y += rect.vy; …
Run Code Online (Sandbox Code Playgroud)

javascript canvas

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

如何在javascript中将重力应用于弹跳球 -

我想要让一个球在画布周围来回反弹,然后有一些重力并最终掉落.我知道我需要在到达底部时改变速度,但我不知道应该如何完成和编码.

我是一个全新的JS学生,没有物理背景 - 这有多难?我很高兴学习等等.我试过让球碰撞并以正确的角度脱落,但现在看来我已经高高在上了.

var canvas,
    ctx,
    cx = 100,
    cy = 150,
    vx = 0,
    vy = 5,
    radius = 30;

function init() {

    canvas = document.getElementById("gameCanvas");
    ctx = canvas.getContext("2d");

    circle();
}

function circle() {
    ctx.clearRect(0, 0, canvas.width, canvas.height);
    requestAnimationFrame(circle);

    if (cx + radius > canvas.width || cx - radius < 0)
    vx = -vx;
    if (cy + radius > canvas.height || cy - radius < 0)
    vy = -vy;

    cx += vx;  
    cy += vy;
}
Run Code Online (Sandbox Code Playgroud)

我已经取出cx运动只是为了上/下动画和圆形绘制代码的空间下一步将是什么?

我会将其当前速度乘以碰撞时的数字0.8,以及在何处/如何? …

javascript canvas

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

图像不在生产版本中显示,仅在开发中显示(webpack/sass-loader)

在 webpack 开发服务器上运行我的应用程序时,我的所有图像文件都在工作,无论是作为 index.html 中的 img 标签还是 background-image: url()..

尽管在生产版本中运行我的项目,但我收到了无法找到的文件引用错误。

GET file:///img/featured.png net::ERR_FILE_NOT_FOUND
GET file:///img/header-img1-1.jpg net::ERR_FILE_NOT_FOUND
Run Code Online (Sandbox Code Playgroud)

我添加了 copy webpack 插件,因为我认为这会将所有图像从我的 src/img 文件夹移动到我在 dist 中的 img 文件夹。

我应该为 webpack-dev-server 使用 contentBase 选项吗?或者 copy-webpack-plugin 没有得到正确的引用?超级糊涂

项目树:

- webpack.config.js
- package.json
- .babelrc
- src
  - js
    - index.js
    - ...
  - img
    - ALL IMAGES LOCATED HERE
  - scss
    - layout
      - landing.scss
      - brands.scss 
    - base
  - index.html
Run Code Online (Sandbox Code Playgroud)

我用过的landing.scss里面

background: url('~/img/img-title.png')
Run Code Online (Sandbox Code Playgroud)

与brand.scss等其他文件相同

background: url('~/img/img-title.png')
Run Code Online (Sandbox Code Playgroud)

这一切都很好,我想我已经对如何使用 webpack/sass 加载器引用图像感到困惑,并且似乎无法弄清楚如何让图像路径同时适用于开发/生产,我只能似乎一次让一个工作。

生产树:

- dist
  - …
Run Code Online (Sandbox Code Playgroud)

javascript image sass webpack sass-loader

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

清理和验证表单 php

完全陷入了深层次 - PHP 新手并做了一个简单的表单提交(创建帐户页面)以发送到 mySQL 数据库,因此对于问题的noobness 表示歉意。

我不确定如何在发送数据之前正确验证和清理数据。但是我在插入数据库时​​使用了 PDO 和占位符,所以我想我已经涵盖了这一方面。

<form action="createaccount.php" name="form" method="post">
    <input type="text" name="createUserName" id="createUserName" placeholder="User Name"><br>
    <input type="password" name="passWord" id="passWord" placeholder="Password (Min 6 Characters)"><br>
    <input type="password" name="confirmPW" id="confirmPW" placeholder="Confirm Password"><br>

    <input type="text" name="fName" id="fName" placeholder="First Name"><br>
    <input type="text" name="sName" id="sName" placeholder="Surname"><br><br>

    <input type="email" name="userEmail" id="userEmail" placeholder="Email Address"><br>
    <input type="submit" value="Create Account">
</form>
Run Code Online (Sandbox Code Playgroud)

这被发送到一个名为 createaccount.php 的单独 php 文件,该文件运行用户名检查,如果成功则运行一个函数,将字段发送到我的 dbHandler 类中的插入函数中。

<?php 
session_start();
include('connect.php'); 

  $username = $_POST['createUserName'];
  $password = $_POST['passWord'];
  $password_confirm = $_POST['confirmPW'];
  $firstname = $_POST['fName'];
  $surname = …
Run Code Online (Sandbox Code Playgroud)

html php mysql forms pdo

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

Eslint/Tslint 配置帮助(不包括文件)

最近在我们的项目中迁移到使用@typescript-eslint/parsertslint 来慢慢迁移。一切都很顺利,但我有一个小问题/问题我无法解决。

我是否需要在 tsconfig 排除数组以及导出对象上的ignorePatterns 中指定忽略文件/模式.eslintrc?有什么不同?

我们的src/lang目录中有一个 messages.js 文件,我试图忽略它,但目前在我们的 pre-commit 钩子上抛出了一个 lint 错误,这让我想知道这个问题以及这两个设置如何协同工作。

Parsing error: "parserOptions.project" has been set for '@typescript-eslint/parser' The file does not match your project config: src/lang/messages.js. The file must be included in at least one of the projects provided

我认为我对这些交织的理解是关闭的,因为当 eslint 运行时,我认为 parserOptions 会从 tsconfig 中获取项目规则,其中排除了 js 文件。

目前,我在eslintrc 中谈论的部分如下所示:

module.exports = {
    parser: '@typescript-eslint/parser',
    parserOptions: {
        project: path.resolve(__dirname, './tsconfig.json'),
        tsconfigRootDir: __dirname,
        useJSXTextNode: true,
        sourceType: 'module', …
Run Code Online (Sandbox Code Playgroud)

javascript typescript eslint tslint

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

标签 统计

javascript ×5

canvas ×2

css ×1

eslint ×1

forms ×1

html ×1

image ×1

mysql ×1

pdo ×1

php ×1

reactjs ×1

sass ×1

sass-loader ×1

tslint ×1

typescript ×1

webpack ×1