GVKun编程网logo

带有HTML基本元素的AngularJS应用中的svg clipPath(svg在html5中应用)

5

以上就是给各位分享带有HTML基本元素的AngularJS应用中的svgclipPath,其中也会对svg在html5中应用进行解释,同时本文还将给你拓展(翻译)ClippinginCSSandSVG

以上就是给各位分享带有HTML基本元素的AngularJS应用中的svg clipPath,其中也会对svg在html5中应用进行解释,同时本文还将给你拓展(翻译)Clipping in CSS and SVG ? The clip-path Property and Element_html/css_WEB-ITnose、.htaccess的AngularJS应用程序与HTML5模式的子文件夹、angularjs – Angular 2 app中的socket.io-client、angularjs – Dockerize你的Angular NodeJS应用程序等相关知识,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

带有HTML基本元素的AngularJS应用中的svg clipPath(svg在html5中应用)

带有HTML基本元素的AngularJS应用中的svg clipPath(svg在html5中应用)

clipPath在AngularJS项目中使用svg。我在指定clipPath的相对URL时遇到问题,因为我需要<base>在项目中使用该元素。

例如,此代码在没有的项目中有效base,而在的项目中则无效<base href="/">

<svg width="120" height="120"     viewPort="0 0 120 120" version="1.1"     xmlns="http://www.w3.org/2000/svg">    <defs>        <clipPath id="myClip">            <rect x="10" y="10" width="60" height="60"></rect>        </clipPath>    </defs>    <g clip-path="url(#myClip)">        <circle cx="30" cy="30" r="20"/>        <circle cx="70" cy="70" r="20"/>    </g></svg>

如何解决呢?我使用ui-router,如果这与问题有关…

[这个问题] 是相同的,但是OP找到的“解决方案”是删除基础,对于我而言这不是解决方案。

答案1

小编典典

更改

<g clip-path="url(#myClip)">

因此,您使用的是绝对URL
+片段标识符,而不是仅使用片段标识符。例如url(http://mydomain.com/mypage#myClip)

如果基本标记与绝对URL匹配,则您可以删除一些部分,例如http和域,因此/ mypage#myClip可能起作用。

(翻译)Clipping in CSS and SVG ? The clip-path Property and <clipPath> Element_html/css_WEB-ITnose

(翻译)Clipping in CSS and SVG ? The clip-path Property and Element_html/css_WEB-ITnose

css和svg有很多地方相似,今天我们的css就有很多地方是从svg来的,其中 一个就是clipping操作。css和svg都允许我们对元素进行clip操作,以使元素变成特定的不规则形状。

请注意,这篇文章的例子可能在你的浏览器上不会起作用。所以请查看这个兼容性报告。

What Is Clipping?

clipping是一种能够让你全部或局部隐藏元素图像的操作。被修剪的元素可以是任何容器或图像元素。元素显示的或隐藏的部分由clipping path决定。

比如效果

立即学习“前端免费学习笔记(深入)”;

 

svg文件

<?xml version="1.0" encoding="utf-8"?><!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  --><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"width="1500px" height="800px" viewBox="0 0 1500 400" enable-background="new 0 0 1500 800" xml:space="preserve"><image overflow="visible" width="800" height="500" xlink:href="your image" transform="matrix(0.5532 0 0 0.5532 56.1025 62.7842)"></image><g>    <defs>        <path id="SVGID_1_" d="M1167.578,93.518c23.562-5.852,53.741-8.445,53.741-8.445s62.447-5.133,77.539,2.303            c36.88,18.17,83.217,61.54,101.34,81.379c19.146,20.961,22.49,58.347,17.657,79.559c-8.793,38.584-104.193,61.551-143.38,67.075            c-41.948,5.916-159.901-0.019-191.348-28.405c-21.392-19.311-9.722-104.656-0.767-132.048            C1095.412,115.014,1144.917,99.146,1167.578,93.518z"/>    </defs>    <clipPath id="SVGID_2_">        <use xlink:href="#SVGID_1_"  overflow="visible"/>    </clipPath>    <g clip-path="url(#SVGID_2_)">        <defs>            <rect id="SVGID_3_" x="1019" y="62" width="441" height="276"/>        </defs>        <clipPath id="SVGID_4_">            <use xlink:href="#SVGID_3_"  overflow="visible"/>        </clipPath>        <g transform="matrix(1 0 0 1 0 -3.814697e-006)" clip-path="url(#SVGID_4_)">                            <image overflow="visible" width="800" height="500" xlink:href="your image" transform="matrix(0.5519 0 0 0.5519 1019.1992 61.7114)">            </image>        </g>    </g></g><g>    <path fill="none" stroke="#000000" stroke-width="1.7043" stroke-miterlimit="10" stroke-dasharray="8.5114,8.5114" d="        M692.578,94.518c23.562-5.852,53.741-8.445,53.741-8.445s62.447-5.133,77.539,2.303c36.88,18.171,83.217,61.54,101.34,81.379        c19.146,20.961,22.49,58.348,17.657,79.56c-8.793,38.584-104.193,61.551-143.38,67.075c-41.948,5.916-159.901-0.019-191.348-28.405        c-21.392-19.311-9.722-104.656-0.767-132.048C620.412,116.014,669.917,100.146,692.578,94.518z"/></g><g id="layer1" transform="translate(-166.9787,-302.08511)">    <path id="path3009" d="M961.748,396.576c2.535-0.148,4.486-2.119,4.352-4.407c-0.133-2.287-2.299-4.016-4.836-3.867l-3.251,0.127        c-2.903,0.171-5.362-0.773-5.827-2.162c-0.082-0.266-0.063-0.519-0.045-0.791c0.297-1.433,2.631-2.656,5.535-2.827l3.243-0.252        c2.536-0.148,4.487-2.119,4.352-4.406c-0.133-2.288-2.299-4.016-4.837-3.868c-2.534,0.149-4.472,2.119-4.339,4.405        c0.063,1.035,0.535,1.956,1.271,2.64c-3.787,0.26-7.001,1.457-8.549,3.016l-16.073-5.058c-4.482-0.77-5.166,1.773-5.31,1.996        L944,386.349l-15.844,7.123c0.171,0.204,1.145,2.649,5.508,1.362l15.373-6.895c1.72,1.367,5.049,2.181,8.841,1.997        c-0.651,0.766-1.014,1.735-0.953,2.771C957.057,394.994,959.212,396.724,961.748,396.576z M961.73,395.4        c-1.79,0.105-3.318-1.231-3.409-2.775c-0.091-1.543,0.987-3.218,2.779-3.322c1.792-0.105,3.613,1.4,3.704,2.943        C964.893,393.789,963.52,395.295,961.73,395.4z M960.64,381.423c-1.792,0.104-3.06-1.433-3.15-2.977        c-0.088-1.542,1.272-3.048,3.063-3.152c1.791-0.105,3.33,1.229,3.422,2.774C964.065,379.611,962.43,381.318,960.64,381.423        L960.64,381.423z"/></g><text transform="matrix(1 0 0 1 222.7568 432.0273)" font-family="''Angelina''" font-size="40">Object</text><text transform="matrix(1 0 0 1 701.3027 432.0273)" font-family="''Angelina''" font-size="40">Clipping Path</text><text transform="matrix(1 0 0 1 1151.085 432.0273)" font-family="''Angelina''" font-size="40">Clipped Object</text><text transform="matrix(1 0 0 1 517.3511 237.4595)" font-family="''LaoUI''" font-size="80">+</text><text transform="matrix(1 0 0 1 978.2168 237.4595)" font-family="''LaoUI''" font-size="80">=</text></svg>
登录后复制

注意,你需要自己改下图片的路径才能用。原来的路径是base64,太长了,我删了。

clipping path限定了一个区域,在这个区域内的图像就会被显示,而在之之外的就不会显示。这个区域被称之为clipping region。

更确切的说,任何在这区域外的元素部分都不会被渲染,包括内容content,背景,边框,文饰text decoration,outline和这个the clipping path所用的可见的滚动机制。

这些东西在后代元素中也不会被渲染。

Clipping In CSS ? The clip-path Property

clip-path是css遮罩模块(CSS Masking Module)的一部分,而clipping操作从2000年起就是svg的一部分了,而且clipping操作已经被纳入css遮罩模块中,以使我们在对html元素修剪(clip)的时候就和对svg元素的一样。

clip-path属性是用来指定将被应用到元素上的修剪路径,用clip-path,你可以指定SVG 中路径的属性值。

你还可以通过指定CSS Shapes module中的基本形状(basic shapes)来限定修剪路径。

这些形状可以用shape functions来创建,比如polygon(), circle(), inset(),ellipse()

用clip-path是修剪路径作用于元素是非常简单,直接的。

/* Referencing an SVG clipPath */.element {    clip-path: url(#svgClipPathID);} /* Using a CSS basic shape function */.element {    clip-path: polygon(...); /* or one of the other shape functions */}
登录后复制

比如,我们用polygon()来限定多边形的修剪路径,然后把它应用到图片上,代码如下:

img {    clip-path: polygon(626px 463px,765px 236px,687px 31px,271px 100px,70px 10px,49px 250px,133px 406px,374px 462px,529px 393px);}
登录后复制

效果:live demo

立即学习“前端免费学习笔记(深入)”;

基本的shape functions只能让我们创建有限数量的形状,这些形状中最复杂的是多边形。

如果你想创建更复杂的形状,可以用SVG 元素。SVG 可以让你创建任意随意的形状,然后将其用做修剪路径。

比如:

<svg height="0" width="0">    <defs>        <clipPath id="svgPath">            <path fill="#FFFFFF" stroke="#000000" stroke-width="1.5794" stroke-miterlimit="10" d="M215,100.3c97.8-32.6,90.5-71.9,336-77.6        c92.4-2.1,98.1,81.6,121.8,116.4c101.7,149.9,53.5,155.9,14.7,178c-96.4,54.9,5.4,269-257,115.1c-57-33.5-203,46.3-263.7,20.1        c-33.5-14.5-132.5-45.5-95-111.1C125.9,246.6,98.6,139.1,215,100.3z"/>        </clipPath>    </defs></svg>
登录后复制

修剪路径:

立即学习“前端免费学习笔记(深入)”;

我们将SVG 应用到图片上

img {    clip-path: url(#svgPath);}
登录后复制

效果:live demo

立即学习“前端免费学习笔记(深入)”;

可以包含任意数量的基本形状(, , etc.),,甚至是

里用作修剪路径,最棒的一点是你可以指定text里的font-family.

<svg height="0" width="0">    <defs>        <clipPath id="svgTextPath">            <text x="0" y="300" textLength="800px" lengthAdjust="spacing" font-family="Vollkorn" font-size="230px" font-weight="700" font-> Blossom </text>        </clipPath>    </defs></svg>
登录后复制

我通过设置textLength,将text的宽度和图片的宽度设成一致.用中的x,y坐标来定位。

注意,这里的x,y坐标是以文字的左下角为原点的。

效果:live demo

立即学习“前端免费学习笔记(深入)”;

下面,我让包含多个基本形状。

<svg height="0" width="0">    <defs>        <clipPath id="svgPath">            <circle stroke="#000000" stroke-miterlimit="10" cx="50" cy="50" r="40" />            <circle stroke="#000000" stroke-miterlimit="10" cx="193.949" cy="235" r="74.576"/>            <circle stroke="#000000" stroke-miterlimit="10" cx="426.576" cy="108.305" r="47.034"/>            <circle stroke="#000000" stroke-miterlimit="10" cx="346.915" cy="255.763" r="43.644"/>            <circle stroke="#000000" stroke-miterlimit="10" cx="255.39" cy="82.882" r="35.17"/>            <!-- more circles... -->        </clipPath>    </defs></svg>
登录后复制

 效果:live demo

立即学习“前端免费学习笔记(深入)”;

(完)

如果是知道点flash的人都知道,这个就是flash里面的遮罩嘛。

qq空间里面的动感影集的图片的切换效果就用的遮罩。

那切换效果简直是相当的炫目,而且变化很多。qq空间里面的效果就有21种。

我随便放一个所谓的遮罩,大家就会瞬间秒懂。

立即学习“前端免费学习笔记(深入)”;

这显然比用js的动画库的简单的多,更容易去做。

而上面讲的用svg去做不规则的遮罩,这个提供了一个新思路。你可以动态的改变svg,还有他的参数达到类似的动画效果。

另外,html5 的canvas也有类似的效果。用到了个很好的html5库easel js.

尼玛,他的官网经常上不去,不过github上的去 https://github.com/CreateJS/EaselJS

 效果

立即学习“前端免费学习笔记(深入)”;

.htaccess的AngularJS应用程序与HTML5模式的子文件夹

.htaccess的AngularJS应用程序与HTML5模式的子文件夹

概述:

我有一个使用$locationProvider.html5Mode(true)的AngularJS应用程序,它是从Apache服务器提供的。 到目前为止,我使用源代码从其他人访问,我只需要redirect到index.html的angularJS的HTML5模式。 所以我有这个为我的/app文件夹的.htaccess文件。

.htaccess:

<IfModule mod_rewrite.c> RewriteEngine on # Don''t rewrite files or directories RewriteCond %{REQUEST_FILENAME} -f [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^ - [L] # Rewrite everything else to index.html to allow html5 state links RewriteRule ^ index.html [L] </IfModule>

修改:

Apache .htaccess将index.htmlredirect到root,为什么要使用FollowSymlinks和RewriteBase?

.htaccess,将404错误重写到其他域

RewriteCond和RewriteRule在.htaccess中

使用.htaccess将所有非www都redirect到www和http

htaccess可以读取在Apache中设置的服务器环境variables吗?

然后,我添加了Grunt来缩小应用程序的/dist文件夹中生成的整个解决scheme(所以现在缩小的解决scheme在/ app / dist中)。 我现在想将我的应用程序的整个stream量路由到缩小版本,而不会让用户更改链接。 所以,在实践中,我想将每个来自/ app的调用redirect到/ app / dist。

目录结构现在:

app dist minified versions(css,html,js)

我尝试在/ app的.htaccess中使用这里的一些条件,并移动/ app / dist中的其他.htaccess文件,但没有成功。 我甚至不知道这两者是否可以这样结合。 我知道我可以使用dist文件夹作为/应用程序,但我不会真的想这样做,因为/ app是一个回购,它更容易保持更新。 那么我怎样才能实现这个redirect呢?

此外,作为第二件事情,是否有可能把一个标志不知何故,我让阿尔法用户使用正常(未缩小)的版本更好的debugging?

更新:

我在这里添加了一个示例项目。 我只保留了上面显示的初始.htaccess文件,您可以检查两个版本( /test和/test/dist )是否如上所述工作。 此外,它可能有一些未使用的代码和依赖项,但我只是从我的项目中删除其他部分(不要判断:D)。

为此,我使用了AngularJS 1.4.8的初始configuration,可能会产生一些像这里和这里所述的错误。 随意将AngularJS版本更新到1.5.8(Angular 1的最后一个稳定版本),但同时考虑到Cosmin Ababei的post上的评论。 另外,该项目使用npm来安装grunt(以及其他的grunt扩展),bower for angular和其他一些基本组件,以及用于构build缩小版本的grunt(实际上,它现在只是将资源连接在相同的文件中)。 如果您需要更改依赖项,请不要忘记运行bower install 。 如果你想重新生成dist文件夹,不要忘记运行npm install和grunt build 。

apache HTTP:X-Forwarded-Proto in .htaccess在开发环境中导致redirect循环

用.htaccess中选定的查询string参数重写URL

漂亮的URL与.htaccess

apache .htaccess到Nginx重写规则

.htaccessurl重写和删除%20

我将假定在/dist目录里有index.html ,并且更新的URL指向缩小的资源和正确的<base>标记。 请注意, <base>标记必须指向/dist文件夹 – 只需将/dist附加到您为未压缩的 index.html使用的值,您就可以。

有了这些东西,这里是更新的.htaccess文件:

RewriteEngine On # Don''t rewrite files RewriteCond %{REQUEST_FILENAME} -f RewriteRule ^ - [L] # If the ALPHA_USER cookie is set,serve the uncompressed files RewriteCond %{HTTP_COOKIE} ALPHA_USER [NC] RewriteRule ^ index.html [L] # Rewrite everything RewriteRule ^ dist/index.html [L]

你会注意到两件事情:

我已经删除了RewriteCond %{REQUEST_FILENAME} -d因为很可能你不需要为整个目录服务

我添加了ALPHA_USER cookie,将用户重定向到未压缩的文件。 这个cookie可以有你想要的任何价值。

在public_html => / app => .htaccess里面试试这个:

RewriteEngine On RewriteCond %{HTTP_HOST} ^example.com$ [NC] RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^ dist/index.html [L]

注意: HTML <base>标签应该指向dist文件夹。 我希望这个解决方案能按照你的期望工作。

总结

以上是小编为你收集整理的.htaccess的AngularJS应用程序与HTML5模式的子文件夹全部内容。

如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。

angularjs – Angular 2 app中的socket.io-client

angularjs – Angular 2 app中的socket.io-client

参见英文答案 > How to import socket.io-client in a angular 2 application?4个
我正在尝试在我的angular 2应用程序中使用socket.io客户端并安装它和打字

我只是从’socket.io-client’导入;

但不知怎的,我从中得到了很多错误:

如果我从cdn加载脚本并将init代码放在< script>中,我可以在index.html中使用lib.标签,但我不能在我的实际角度2应用程序中使用它.

我在这做错了什么?

这是我的样板:https://github.com/mgechev/angular2-seed

socket.io的例子似乎已经过时了,这就是我避免它们的原因.

这就是我正在做的并且已经得到了这些错误:

import * as io from 'socket.io-client';
[...]
var socket = io('127.0.0.1');

所以这个问题似乎与SystemJS有关.
这https://github.com/mgechev/angular2-seed/wiki/Add-external-dependency建议我可以添加socket.io-client,它应该自动添加所有依赖项,但事实并非如此.

我已经尝试了完整的例子,但这也无济于事.

我在我的角度2应用程序中使用socket.io客户端,并没有任何问题.首先,您不应该在index.hml中将script标记放入socket.io-client.其次,你需要在system.js配置中使用这些行:
{
  packages: {
      "socket.io-client": {"defaultExtension": "js"}
  },map: {
    "socket.io-client": "node_modules/socket.io-client/socket.io.js"
  }
}

然后你只需使用它:

import * as io from "socket.io-client";
io.connect(url,{ /* ... */ });

angularjs – Dockerize你的Angular NodeJS应用程序

angularjs – Dockerize你的Angular NodeJS应用程序

我们有一个前端应用程序.
它是用Angular(html css javascript)编写的,需要由webserver(Nginx)托管.
Angular正在与将与后端通信的NodeJs服务器进行通信.

现在我们必须在Docker中运行它.

>我们想要使用2个Docker容器:一个使用nodejs,另一个使用Nginx,让它们一起工作

那么可以在一个存储库中编写2个dockerfiles吗?
主要的想法是为nodejs提供1个dockerfile,它还运行bower install,npm install,…
这将是这样的:

# Create app directory
RUN mkdir -p /usr/src/www
workdir /usr/src/www

RUN npm install -g bower
RUN npm install -g gulp

# Install app dependencies
copY . /usr/src/www/
RUN bower install
RUN npm install
RUN gulp build

EXPOSE port
CMD [ "node", "server.js" ]

还有一个dockerfile,我们在其中运行一个Nginx-webserver,但也包含一个Nginx.conf,所以它可以指向我们node.js-container中的right / dist文件夹
Nginx的dockerfile如下所示:

# Set Nginx base image
FROM Nginx

# copy custom configuration file from the current directory
copY Nginx.conf /etc/Nginx/Nginx.conf

Nginx.conf的一个例子

location ~* /dist {
            proxy_pass http://nodejs:port;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection 'upgrade';
            proxy_set_header Host $host;
            proxy_cache_bypass $http_upgrade;

解决方法:

在我看来,使用2个泊坞容器是最佳选择,每个容器设计的单一责任值得遵循.

每个项目必须创建多个容器是非常常见的:

>数据库
>后端服务器
>前端服务器

一种方法是为docker定义和每个docker上下文创建一个文件夹,创建一个脚本docker_build.sh,用于准备docker上下文(复制所需的所有工件:libs,源代码等),最后构建docker.

project_root/
|----src/
|----docker/
|----|----angular/
|----|----|-----Dockerfile
|----|----|-----docker_build.sh
|----|----nodejs/
|----|----|-----Dockerfile
|----|----|-----docker_build.sh       

docker_build.sh的一个例子

#!/bin/bash

# create temp directory for building
mkdir DockerBuildTempPath/

# copy files to temp directory
cp -arv Dockerfile DockerBuildTempPath/
cp -arv ../../src/ DockerBuildTempPath/
# ... etc

cd DockerBuildTempPath

#build image
docker build -t myapp .

# remove temp directory
cd ..
rm -r ./DockerBuildTempPath/

我们今天的关于带有HTML基本元素的AngularJS应用中的svg clipPathsvg在html5中应用的分享就到这里,谢谢您的阅读,如果想了解更多关于(翻译)Clipping in CSS and SVG ? The clip-path Property and Element_html/css_WEB-ITnose、.htaccess的AngularJS应用程序与HTML5模式的子文件夹、angularjs – Angular 2 app中的socket.io-client、angularjs – Dockerize你的Angular NodeJS应用程序的相关信息,可以在本站进行搜索。

本文标签: